./Ultimate.py --spec ../sv-benchmarks/c/properties/termination.prp --file ../sv-benchmarks/c/termination-numeric/Binomial.c --full-output --architecture 64bit -------------------------------------------------------------------------------- Checking for termination Using default analysis Version 574ddb4e Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerTermination.xml -i ../sv-benchmarks/c/termination-numeric/Binomial.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-64bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(F end) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 64bit --witnessprinter.graph.data.programhash c204b56aba09d3ce87e17edffdff1d33aa0b4dc87a1e1140339548dffa982588 --- Real Ultimate output --- This is Ultimate 0.2.2-?-574ddb4 [2023-02-17 09:40:55,700 INFO L177 SettingsManager]: Resetting all preferences to default values... [2023-02-17 09:40:55,701 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2023-02-17 09:40:55,726 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2023-02-17 09:40:55,728 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2023-02-17 09:40:55,731 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2023-02-17 09:40:55,733 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2023-02-17 09:40:55,736 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2023-02-17 09:40:55,738 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2023-02-17 09:40:55,744 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2023-02-17 09:40:55,745 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2023-02-17 09:40:55,747 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2023-02-17 09:40:55,747 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2023-02-17 09:40:55,752 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2023-02-17 09:40:55,753 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2023-02-17 09:40:55,755 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2023-02-17 09:40:55,756 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2023-02-17 09:40:55,757 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2023-02-17 09:40:55,758 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2023-02-17 09:40:55,763 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2023-02-17 09:40:55,764 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2023-02-17 09:40:55,765 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2023-02-17 09:40:55,766 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2023-02-17 09:40:55,767 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2023-02-17 09:40:55,769 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2023-02-17 09:40:55,769 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2023-02-17 09:40:55,769 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2023-02-17 09:40:55,770 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2023-02-17 09:40:55,770 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2023-02-17 09:40:55,771 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2023-02-17 09:40:55,771 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2023-02-17 09:40:55,772 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2023-02-17 09:40:55,772 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2023-02-17 09:40:55,773 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2023-02-17 09:40:55,774 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2023-02-17 09:40:55,774 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2023-02-17 09:40:55,774 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2023-02-17 09:40:55,774 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2023-02-17 09:40:55,775 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2023-02-17 09:40:55,775 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2023-02-17 09:40:55,776 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2023-02-17 09:40:55,776 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Termination-64bit-Automizer_Default.epf [2023-02-17 09:40:55,807 INFO L113 SettingsManager]: Loading preferences was successful [2023-02-17 09:40:55,808 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2023-02-17 09:40:55,808 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2023-02-17 09:40:55,808 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2023-02-17 09:40:55,809 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2023-02-17 09:40:55,809 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2023-02-17 09:40:55,809 INFO L138 SettingsManager]: * Use SBE=true [2023-02-17 09:40:55,809 INFO L136 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2023-02-17 09:40:55,810 INFO L138 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2023-02-17 09:40:55,810 INFO L138 SettingsManager]: * Use old map elimination=false [2023-02-17 09:40:55,810 INFO L138 SettingsManager]: * Use external solver (rank synthesis)=false [2023-02-17 09:40:55,810 INFO L138 SettingsManager]: * Use only trivial implications for array writes=true [2023-02-17 09:40:55,810 INFO L138 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2023-02-17 09:40:55,810 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2023-02-17 09:40:55,810 INFO L138 SettingsManager]: * Check unreachability of error function in SV-COMP mode=false [2023-02-17 09:40:55,810 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2023-02-17 09:40:55,811 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2023-02-17 09:40:55,811 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2023-02-17 09:40:55,811 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2023-02-17 09:40:55,811 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2023-02-17 09:40:55,811 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2023-02-17 09:40:55,811 INFO L138 SettingsManager]: * Assume nondeterminstic values are in range=false [2023-02-17 09:40:55,811 INFO L138 SettingsManager]: * Use constant arrays=true [2023-02-17 09:40:55,812 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2023-02-17 09:40:55,812 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2023-02-17 09:40:55,812 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2023-02-17 09:40:55,812 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2023-02-17 09:40:55,812 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2023-02-17 09:40:55,815 INFO L136 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2023-02-17 09:40:55,815 INFO L138 SettingsManager]: * TransformationType=MODULO_NEIGHBOR 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.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(F end) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 64bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> c204b56aba09d3ce87e17edffdff1d33aa0b4dc87a1e1140339548dffa982588 [2023-02-17 09:40:56,045 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2023-02-17 09:40:56,069 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2023-02-17 09:40:56,072 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2023-02-17 09:40:56,073 INFO L271 PluginConnector]: Initializing CDTParser... [2023-02-17 09:40:56,074 INFO L275 PluginConnector]: CDTParser initialized [2023-02-17 09:40:56,076 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/termination-numeric/Binomial.c [2023-02-17 09:40:57,216 INFO L500 CDTParser]: Created temporary CDT project at NULL [2023-02-17 09:40:57,376 INFO L351 CDTParser]: Found 1 translation units. [2023-02-17 09:40:57,377 INFO L172 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/termination-numeric/Binomial.c [2023-02-17 09:40:57,382 INFO L394 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8318d3c21/28e07999bb634b14987207122cc13bc9/FLAGf312c4d11 [2023-02-17 09:40:57,787 INFO L402 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/8318d3c21/28e07999bb634b14987207122cc13bc9 [2023-02-17 09:40:57,791 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2023-02-17 09:40:57,792 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2023-02-17 09:40:57,793 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2023-02-17 09:40:57,793 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2023-02-17 09:40:57,797 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2023-02-17 09:40:57,797 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:57,798 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@18610c01 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57, skipping insertion in model container [2023-02-17 09:40:57,798 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:57,804 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2023-02-17 09:40:57,815 INFO L178 MainTranslator]: Built tables and reachable declarations [2023-02-17 09:40:57,943 INFO L210 PostProcessor]: Analyzing one entry point: main [2023-02-17 09:40:57,947 INFO L203 MainTranslator]: Completed pre-run [2023-02-17 09:40:57,961 INFO L210 PostProcessor]: Analyzing one entry point: main [2023-02-17 09:40:57,971 INFO L208 MainTranslator]: Completed translation [2023-02-17 09:40:57,972 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57 WrapperNode [2023-02-17 09:40:57,972 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2023-02-17 09:40:57,973 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2023-02-17 09:40:57,973 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2023-02-17 09:40:57,974 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2023-02-17 09:40:57,980 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:57,986 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,001 INFO L138 Inliner]: procedures = 6, calls = 8, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 55 [2023-02-17 09:40:58,001 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2023-02-17 09:40:58,003 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2023-02-17 09:40:58,004 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2023-02-17 09:40:58,004 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2023-02-17 09:40:58,010 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,011 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,012 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,012 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,014 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,017 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,018 INFO L185 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,018 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,020 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2023-02-17 09:40:58,020 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2023-02-17 09:40:58,021 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2023-02-17 09:40:58,021 INFO L275 PluginConnector]: RCFGBuilder initialized [2023-02-17 09:40:58,021 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (1/1) ... [2023-02-17 09:40:58,028 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:58,038 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:58,048 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:40:58,050 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Waiting until timeout for monitored process [2023-02-17 09:40:58,081 INFO L130 BoogieDeclarations]: Found specification of procedure fact [2023-02-17 09:40:58,081 INFO L138 BoogieDeclarations]: Found implementation of procedure fact [2023-02-17 09:40:58,081 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2023-02-17 09:40:58,082 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2023-02-17 09:40:58,126 INFO L235 CfgBuilder]: Building ICFG [2023-02-17 09:40:58,127 INFO L261 CfgBuilder]: Building CFG for each procedure with an implementation [2023-02-17 09:40:58,270 INFO L276 CfgBuilder]: Performing block encoding [2023-02-17 09:40:58,276 INFO L295 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2023-02-17 09:40:58,276 INFO L300 CfgBuilder]: Removed 2 assume(true) statements. [2023-02-17 09:40:58,278 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 17.02 09:40:58 BoogieIcfgContainer [2023-02-17 09:40:58,278 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2023-02-17 09:40:58,279 INFO L113 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2023-02-17 09:40:58,279 INFO L271 PluginConnector]: Initializing BuchiAutomizer... [2023-02-17 09:40:58,282 INFO L275 PluginConnector]: BuchiAutomizer initialized [2023-02-17 09:40:58,282 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2023-02-17 09:40:58,282 INFO L185 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 17.02 09:40:57" (1/3) ... [2023-02-17 09:40:58,283 INFO L205 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@325e2caf and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 17.02 09:40:58, skipping insertion in model container [2023-02-17 09:40:58,283 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2023-02-17 09:40:58,283 INFO L185 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 17.02 09:40:57" (2/3) ... [2023-02-17 09:40:58,283 INFO L205 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@325e2caf and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 17.02 09:40:58, skipping insertion in model container [2023-02-17 09:40:58,284 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2023-02-17 09:40:58,284 INFO L185 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 17.02 09:40:58" (3/3) ... [2023-02-17 09:40:58,285 INFO L332 chiAutomizerObserver]: Analyzing ICFG Binomial.c [2023-02-17 09:40:58,364 INFO L303 stractBuchiCegarLoop]: Interprodecural is true [2023-02-17 09:40:58,364 INFO L304 stractBuchiCegarLoop]: Hoare is false [2023-02-17 09:40:58,364 INFO L305 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2023-02-17 09:40:58,364 INFO L306 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2023-02-17 09:40:58,365 INFO L307 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2023-02-17 09:40:58,365 INFO L308 stractBuchiCegarLoop]: Difference is false [2023-02-17 09:40:58,365 INFO L309 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2023-02-17 09:40:58,365 INFO L313 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiAutomatonCegarLoop ======== [2023-02-17 09:40:58,369 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 28 states, 19 states have (on average 1.4210526315789473) internal successors, (27), 19 states have internal predecessors, (27), 7 states have call successors, (7), 1 states have call predecessors, (7), 1 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2023-02-17 09:40:58,388 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2023-02-17 09:40:58,389 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:40:58,389 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:40:58,392 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-17 09:40:58,392 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-17 09:40:58,392 INFO L335 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2023-02-17 09:40:58,393 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 28 states, 19 states have (on average 1.4210526315789473) internal successors, (27), 19 states have internal predecessors, (27), 7 states have call successors, (7), 1 states have call predecessors, (7), 1 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2023-02-17 09:40:58,395 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2023-02-17 09:40:58,395 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:40:58,395 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:40:58,396 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-17 09:40:58,396 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-17 09:40:58,404 INFO L748 eck$LassoCheckResult]: Stem: 26#$Ultimate##0true assume { :begin_inline_ULTIMATE.init } true; 8#L-1true assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 14#L35true assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 27#L38true assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 11#L41-3true [2023-02-17 09:40:58,404 INFO L750 eck$LassoCheckResult]: Loop: 11#L41-3true assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 20#L42-3true assume !(main_~k~0#1 <= main_~x~0#1); 12#L41-2true main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 11#L41-3true [2023-02-17 09:40:58,413 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:58,414 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 1 times [2023-02-17 09:40:58,421 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:58,421 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [760220366] [2023-02-17 09:40:58,421 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:58,421 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:58,519 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:58,520 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:40:58,534 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:58,551 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:40:58,571 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:58,572 INFO L85 PathProgramCache]: Analyzing trace with hash 57812, now seen corresponding path program 1 times [2023-02-17 09:40:58,572 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:58,572 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1078088762] [2023-02-17 09:40:58,573 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:58,573 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:58,589 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:58,589 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:40:58,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:58,602 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:40:58,603 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:58,604 INFO L85 PathProgramCache]: Analyzing trace with hash 553673357, now seen corresponding path program 1 times [2023-02-17 09:40:58,604 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:58,604 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [916417316] [2023-02-17 09:40:58,604 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:58,605 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:58,623 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:40:58,689 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2023-02-17 09:40:58,690 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:40:58,690 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [916417316] [2023-02-17 09:40:58,691 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [916417316] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-17 09:40:58,691 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-17 09:40:58,691 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2023-02-17 09:40:58,692 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2121267094] [2023-02-17 09:40:58,692 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-17 09:40:58,707 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:40:58,707 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:40:58,708 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:40:58,708 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:40:58,708 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:40:58,708 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:58,708 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:40:58,708 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:40:58,709 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration1_Loop [2023-02-17 09:40:58,709 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:40:58,709 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:40:58,722 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:58,729 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:58,741 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:40:58,746 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:40:58,748 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:58,748 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:58,752 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:40:58,753 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (2)] Waiting until timeout for monitored process [2023-02-17 09:40:58,756 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:40:58,757 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:40:58,779 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:40:58,780 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post7#1=0} Honda state: {ULTIMATE.start_main_#t~post7#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:40:58,784 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (2)] Forceful destruction successful, exit code 0 [2023-02-17 09:40:58,784 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:58,785 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:58,793 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:40:58,796 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Waiting until timeout for monitored process [2023-02-17 09:40:58,797 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:40:58,797 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:40:58,829 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (3)] Forceful destruction successful, exit code 0 [2023-02-17 09:40:58,829 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:58,829 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:58,831 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:40:58,845 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:40:58,845 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:40:58,880 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Waiting until timeout for monitored process [2023-02-17 09:40:58,996 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:40:59,000 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (4)] Ended with exit code 0 [2023-02-17 09:40:59,001 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:40:59,001 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:40:59,001 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:40:59,001 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:40:59,001 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:40:59,001 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:59,001 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:40:59,001 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:40:59,002 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration1_Loop [2023-02-17 09:40:59,002 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:40:59,002 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:40:59,003 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,005 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,012 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:40:59,016 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:40:59,017 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:59,017 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:59,018 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:40:59,019 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Waiting until timeout for monitored process [2023-02-17 09:40:59,021 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:40:59,028 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:40:59,028 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:40:59,028 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:40:59,029 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:40:59,029 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:40:59,037 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:40:59,037 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:40:59,057 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:40:59,061 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (5)] Forceful destruction successful, exit code 0 [2023-02-17 09:40:59,061 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:59,061 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:59,062 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:40:59,064 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Waiting until timeout for monitored process [2023-02-17 09:40:59,065 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:40:59,071 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:40:59,071 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:40:59,072 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:40:59,072 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:40:59,072 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:40:59,074 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:40:59,074 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:40:59,080 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:40:59,086 INFO L443 ModelExtractionUtils]: Simplification made 4 calls to the SMT solver. [2023-02-17 09:40:59,086 INFO L444 ModelExtractionUtils]: 1 out of 5 variables were initially zero. Simplification set additionally 2 variables to zero. [2023-02-17 09:40:59,088 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:59,088 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:59,126 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:40:59,127 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Waiting until timeout for monitored process [2023-02-17 09:40:59,129 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:40:59,129 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:40:59,130 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:40:59,130 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -1*ULTIMATE.start_main_~n~0#1 Supporting invariants [] [2023-02-17 09:40:59,137 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (6)] Forceful destruction successful, exit code 0 [2023-02-17 09:40:59,139 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:40:59,157 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:59,167 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:40:59,168 INFO L263 TraceCheckSpWp]: Trace formula consists of 12 conjuncts, 2 conjunts are in the unsatisfiable core [2023-02-17 09:40:59,169 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:40:59,178 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:40:59,179 WARN L261 TraceCheckSpWp]: Trace formula consists of 8 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-17 09:40:59,180 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:40:59,219 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2023-02-17 09:40:59,259 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.1 stem predicates 3 loop predicates [2023-02-17 09:40:59,261 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand has 28 states, 19 states have (on average 1.4210526315789473) internal successors, (27), 19 states have internal predecessors, (27), 7 states have call successors, (7), 1 states have call predecessors, (7), 1 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) Second operand has 4 states, 4 states have (on average 1.75) internal successors, (7), 4 states have internal predecessors, (7), 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) [2023-02-17 09:40:59,357 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand has 28 states, 19 states have (on average 1.4210526315789473) internal successors, (27), 19 states have internal predecessors, (27), 7 states have call successors, (7), 1 states have call predecessors, (7), 1 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7). Second operand has 4 states, 4 states have (on average 1.75) internal successors, (7), 4 states have internal predecessors, (7), 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) Result 73 states and 106 transitions. Complement of second has 11 states. [2023-02-17 09:40:59,359 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 6 states 1 stem states 3 non-accepting loop states 1 accepting loop states [2023-02-17 09:40:59,363 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 1.75) internal successors, (7), 4 states have internal predecessors, (7), 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) [2023-02-17 09:40:59,366 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2023-02-17 09:40:59,367 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 54 transitions. Stem has 4 letters. Loop has 3 letters. [2023-02-17 09:40:59,367 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:40:59,368 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 54 transitions. Stem has 7 letters. Loop has 3 letters. [2023-02-17 09:40:59,368 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:40:59,368 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 54 transitions. Stem has 4 letters. Loop has 6 letters. [2023-02-17 09:40:59,368 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:40:59,369 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 73 states and 106 transitions. [2023-02-17 09:40:59,384 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 18 [2023-02-17 09:40:59,390 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 73 states to 33 states and 48 transitions. [2023-02-17 09:40:59,391 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 29 [2023-02-17 09:40:59,392 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 30 [2023-02-17 09:40:59,392 INFO L73 IsDeterministic]: Start isDeterministic. Operand 33 states and 48 transitions. [2023-02-17 09:40:59,392 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:40:59,392 INFO L218 hiAutomatonCegarLoop]: Abstraction has 33 states and 48 transitions. [2023-02-17 09:40:59,405 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states and 48 transitions. [2023-02-17 09:40:59,416 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 30. [2023-02-17 09:40:59,416 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 22 states have (on average 1.2727272727272727) internal successors, (28), 21 states have internal predecessors, (28), 7 states have call successors, (7), 1 states have call predecessors, (7), 1 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2023-02-17 09:40:59,420 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 42 transitions. [2023-02-17 09:40:59,420 INFO L240 hiAutomatonCegarLoop]: Abstraction has 30 states and 42 transitions. [2023-02-17 09:40:59,421 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:40:59,422 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2023-02-17 09:40:59,422 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2023-02-17 09:40:59,423 INFO L87 Difference]: Start difference. First operand 30 states and 42 transitions. Second operand has 4 states, 4 states have (on average 1.75) internal successors, (7), 4 states have internal predecessors, (7), 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) [2023-02-17 09:40:59,475 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:40:59,476 INFO L93 Difference]: Finished difference Result 29 states and 38 transitions. [2023-02-17 09:40:59,476 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 29 states and 38 transitions. [2023-02-17 09:40:59,479 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 19 [2023-02-17 09:40:59,481 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 29 states to 28 states and 37 transitions. [2023-02-17 09:40:59,481 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 28 [2023-02-17 09:40:59,481 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 28 [2023-02-17 09:40:59,481 INFO L73 IsDeterministic]: Start isDeterministic. Operand 28 states and 37 transitions. [2023-02-17 09:40:59,481 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2023-02-17 09:40:59,482 INFO L218 hiAutomatonCegarLoop]: Abstraction has 28 states and 37 transitions. [2023-02-17 09:40:59,482 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states and 37 transitions. [2023-02-17 09:40:59,484 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 26. [2023-02-17 09:40:59,484 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 26 states, 18 states have (on average 1.1666666666666667) internal successors, (21), 17 states have internal predecessors, (21), 7 states have call successors, (7), 1 states have call predecessors, (7), 1 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2023-02-17 09:40:59,485 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 35 transitions. [2023-02-17 09:40:59,485 INFO L240 hiAutomatonCegarLoop]: Abstraction has 26 states and 35 transitions. [2023-02-17 09:40:59,485 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2023-02-17 09:40:59,486 INFO L428 stractBuchiCegarLoop]: Abstraction has 26 states and 35 transitions. [2023-02-17 09:40:59,486 INFO L335 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2023-02-17 09:40:59,486 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 26 states and 35 transitions. [2023-02-17 09:40:59,486 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 19 [2023-02-17 09:40:59,486 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:40:59,487 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:40:59,487 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-17 09:40:59,487 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:40:59,488 INFO L748 eck$LassoCheckResult]: Stem: 243#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 231#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 232#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 238#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 234#L41-3 [2023-02-17 09:40:59,488 INFO L750 eck$LassoCheckResult]: Loop: 234#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 235#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 240#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 218#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 219#$Ultimate##0 ~n := #in~n; 241#L25 assume ~n <= 0;#res := 1; 230#factFINAL assume true; 220#factEXIT >#74#return; 225#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 219#$Ultimate##0 ~n := #in~n; 241#L25 assume ~n <= 0;#res := 1; 230#factFINAL assume true; 220#factEXIT >#76#return; 221#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 219#$Ultimate##0 ~n := #in~n; 241#L25 assume ~n <= 0;#res := 1; 230#factFINAL assume true; 220#factEXIT >#78#return; 227#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 233#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 239#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 242#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 237#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 234#L41-3 [2023-02-17 09:40:59,488 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:59,488 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 2 times [2023-02-17 09:40:59,489 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:59,489 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [312658193] [2023-02-17 09:40:59,489 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,489 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:59,493 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:59,493 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:40:59,495 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:59,496 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:40:59,497 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:59,497 INFO L85 PathProgramCache]: Analyzing trace with hash 1284911041, now seen corresponding path program 1 times [2023-02-17 09:40:59,497 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:59,497 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1923377635] [2023-02-17 09:40:59,497 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,498 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:59,521 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:40:59,521 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [853003923] [2023-02-17 09:40:59,521 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,521 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:40:59,522 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:59,523 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) [2023-02-17 09:40:59,525 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2023-02-17 09:40:59,556 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:40:59,556 INFO L263 TraceCheckSpWp]: Trace formula consists of 59 conjuncts, 8 conjunts are in the unsatisfiable core [2023-02-17 09:40:59,558 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:40:59,583 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 7 proven. 0 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2023-02-17 09:40:59,583 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-17 09:40:59,583 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:40:59,583 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1923377635] [2023-02-17 09:40:59,583 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:40:59,583 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [853003923] [2023-02-17 09:40:59,584 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [853003923] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-17 09:40:59,584 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-17 09:40:59,584 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2023-02-17 09:40:59,584 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [227983002] [2023-02-17 09:40:59,584 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-17 09:40:59,584 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:40:59,585 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:40:59,585 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2023-02-17 09:40:59,585 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2023-02-17 09:40:59,585 INFO L87 Difference]: Start difference. First operand 26 states and 35 transitions. cyclomatic complexity: 11 Second operand has 5 states, 4 states have (on average 3.5) internal successors, (14), 5 states have internal predecessors, (14), 1 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 1 states have call successors, (3) [2023-02-17 09:40:59,664 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:40:59,665 INFO L93 Difference]: Finished difference Result 34 states and 50 transitions. [2023-02-17 09:40:59,665 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 34 states and 50 transitions. [2023-02-17 09:40:59,668 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 25 [2023-02-17 09:40:59,669 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 34 states to 34 states and 50 transitions. [2023-02-17 09:40:59,669 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 34 [2023-02-17 09:40:59,671 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 34 [2023-02-17 09:40:59,671 INFO L73 IsDeterministic]: Start isDeterministic. Operand 34 states and 50 transitions. [2023-02-17 09:40:59,672 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2023-02-17 09:40:59,672 INFO L218 hiAutomatonCegarLoop]: Abstraction has 34 states and 50 transitions. [2023-02-17 09:40:59,673 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 34 states and 50 transitions. [2023-02-17 09:40:59,679 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 34 to 28. [2023-02-17 09:40:59,680 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 28 states, 19 states have (on average 1.1578947368421053) internal successors, (22), 19 states have internal predecessors, (22), 7 states have call successors, (7), 1 states have call predecessors, (7), 2 states have return successors, (13), 7 states have call predecessors, (13), 7 states have call successors, (13) [2023-02-17 09:40:59,682 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 42 transitions. [2023-02-17 09:40:59,682 INFO L240 hiAutomatonCegarLoop]: Abstraction has 28 states and 42 transitions. [2023-02-17 09:40:59,683 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2023-02-17 09:40:59,684 INFO L428 stractBuchiCegarLoop]: Abstraction has 28 states and 42 transitions. [2023-02-17 09:40:59,684 INFO L335 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2023-02-17 09:40:59,684 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 28 states and 42 transitions. [2023-02-17 09:40:59,685 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 19 [2023-02-17 09:40:59,686 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:40:59,686 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:40:59,687 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-17 09:40:59,688 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:40:59,688 INFO L748 eck$LassoCheckResult]: Stem: 380#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 366#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 367#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 374#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 370#L41-3 [2023-02-17 09:40:59,688 INFO L750 eck$LassoCheckResult]: Loop: 370#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 371#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 376#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 354#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 355#$Ultimate##0 ~n := #in~n; 378#L25 assume ~n <= 0;#res := 1; 365#factFINAL assume true; 356#factEXIT >#74#return; 362#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 355#$Ultimate##0 ~n := #in~n; 378#L25 assume ~n <= 0;#res := 1; 365#factFINAL assume true; 356#factEXIT >#76#return; 358#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 355#$Ultimate##0 ~n := #in~n; 378#L25 assume !(~n <= 0); 360#L26 call #t~ret0 := fact(~n - 1);< 355#$Ultimate##0 ~n := #in~n; 378#L25 assume ~n <= 0;#res := 1; 365#factFINAL assume true; 356#factEXIT >#66#return; 364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 377#factFINAL assume true; 381#factEXIT >#78#return; 368#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 375#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 379#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 373#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 370#L41-3 [2023-02-17 09:40:59,688 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:59,689 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 3 times [2023-02-17 09:40:59,689 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:59,689 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [6181616] [2023-02-17 09:40:59,689 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,689 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:59,702 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:59,702 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:40:59,704 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:59,705 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:40:59,705 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:59,705 INFO L85 PathProgramCache]: Analyzing trace with hash -1183838151, now seen corresponding path program 1 times [2023-02-17 09:40:59,705 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:59,705 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1820263879] [2023-02-17 09:40:59,705 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,706 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:59,721 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:40:59,722 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [68348613] [2023-02-17 09:40:59,722 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,722 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:40:59,722 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:59,733 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) [2023-02-17 09:40:59,746 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Waiting until timeout for monitored process [2023-02-17 09:40:59,769 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:59,770 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:40:59,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:40:59,788 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:40:59,788 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:40:59,788 INFO L85 PathProgramCache]: Analyzing trace with hash 2107943858, now seen corresponding path program 1 times [2023-02-17 09:40:59,788 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:40:59,789 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1724552142] [2023-02-17 09:40:59,789 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,789 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:40:59,796 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:40:59,803 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:40:59,803 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1724552142] [2023-02-17 09:40:59,803 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: Unsupported non-linear arithmetic [2023-02-17 09:40:59,803 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [241207701] [2023-02-17 09:40:59,803 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:40:59,804 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:40:59,804 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:59,813 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) [2023-02-17 09:40:59,829 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (7)] Forceful destruction successful, exit code 0 [2023-02-17 09:40:59,837 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Waiting until timeout for monitored process [2023-02-17 09:40:59,871 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:40:59,872 INFO L263 TraceCheckSpWp]: Trace formula consists of 81 conjuncts, 3 conjunts are in the unsatisfiable core [2023-02-17 09:40:59,874 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:40:59,892 INFO L134 CoverageAnalysis]: Checked inductivity of 25 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2023-02-17 09:40:59,893 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-17 09:40:59,893 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [241207701] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-17 09:40:59,893 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-17 09:40:59,893 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2023-02-17 09:40:59,893 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2139517448] [2023-02-17 09:40:59,893 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-17 09:40:59,945 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:40:59,945 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:40:59,945 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:40:59,945 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:40:59,945 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:40:59,945 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:59,945 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:40:59,945 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:40:59,945 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration3_Loop [2023-02-17 09:40:59,946 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:40:59,946 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:40:59,950 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,951 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,954 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,955 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,957 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,958 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,959 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:40:59,965 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 11 [2023-02-17 09:40:59,994 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:40:59,994 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:40:59,994 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:40:59,994 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:40:59,996 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,007 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:00,007 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:00,007 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Waiting until timeout for monitored process [2023-02-17 09:41:00,016 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:00,017 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:00,023 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (11)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,023 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,023 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,025 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,033 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:00,033 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:00,053 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (12)] Waiting until timeout for monitored process [2023-02-17 09:41:00,119 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (12)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,120 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,120 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,121 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,124 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (13)] Waiting until timeout for monitored process [2023-02-17 09:41:00,126 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:00,126 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:00,333 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:00,339 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (13)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,339 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:00,340 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:00,340 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:00,340 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:00,340 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:00,340 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,340 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:00,340 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:00,340 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration3_Loop [2023-02-17 09:41:00,340 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:00,340 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:00,342 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:00,344 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:00,345 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:00,345 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:00,346 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:00,347 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:00,348 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:00,355 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 11 [2023-02-17 09:41:00,373 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:00,373 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:00,373 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,373 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,375 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,377 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (14)] Waiting until timeout for monitored process [2023-02-17 09:41:00,379 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:00,386 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:00,386 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:00,386 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:00,386 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:00,386 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:00,387 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:00,387 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:00,400 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:00,407 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (14)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,407 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,407 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,408 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,411 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (15)] Waiting until timeout for monitored process [2023-02-17 09:41:00,412 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:00,419 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:00,419 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:00,420 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:00,420 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:00,420 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:00,421 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:00,421 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:00,436 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:00,441 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (15)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,441 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,441 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,442 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,452 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:00,459 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:00,460 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:00,460 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:00,460 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:00,460 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:00,462 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:00,462 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:00,463 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (16)] Waiting until timeout for monitored process [2023-02-17 09:41:00,476 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:00,484 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (16)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,484 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,484 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,485 INFO L229 MonitoredProcess]: Starting monitored process 17 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,488 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (17)] Waiting until timeout for monitored process [2023-02-17 09:41:00,489 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:00,496 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:00,497 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:00,497 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:00,497 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:00,497 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:00,497 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:00,498 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:00,512 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:00,520 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (17)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,521 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,521 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,522 INFO L229 MonitoredProcess]: Starting monitored process 18 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,525 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (18)] Waiting until timeout for monitored process [2023-02-17 09:41:00,527 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:00,534 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:00,534 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:00,534 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:00,534 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:00,534 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:00,534 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:00,535 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:00,541 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:00,545 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (18)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,545 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,545 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,546 INFO L229 MonitoredProcess]: Starting monitored process 19 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,548 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (19)] Waiting until timeout for monitored process [2023-02-17 09:41:00,549 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:00,557 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:00,557 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:00,557 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:00,557 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:00,557 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:00,557 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:00,558 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:00,566 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:00,571 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (19)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,572 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,572 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,573 INFO L229 MonitoredProcess]: Starting monitored process 20 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,574 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (20)] Waiting until timeout for monitored process [2023-02-17 09:41:00,576 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:00,582 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:00,582 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:00,582 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:00,582 INFO L204 nArgumentSynthesizer]: 32 loop disjuncts [2023-02-17 09:41:00,583 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:00,716 INFO L401 nArgumentSynthesizer]: We have 64 Motzkin's Theorem applications. [2023-02-17 09:41:00,717 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:00,847 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:00,894 INFO L443 ModelExtractionUtils]: Simplification made 2 calls to the SMT solver. [2023-02-17 09:41:00,894 INFO L444 ModelExtractionUtils]: 8 out of 10 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-17 09:41:00,894 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:00,894 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:00,901 INFO L229 MonitoredProcess]: Starting monitored process 21 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:00,908 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:00,908 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:00,909 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:00,909 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -1*ULTIMATE.start_main_~n~0#1 Supporting invariants [] [2023-02-17 09:41:00,920 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (21)] Waiting until timeout for monitored process [2023-02-17 09:41:00,920 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (20)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:00,921 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:00,932 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:00,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:00,939 INFO L263 TraceCheckSpWp]: Trace formula consists of 12 conjuncts, 2 conjunts are in the unsatisfiable core [2023-02-17 09:41:00,940 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:00,977 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:00,978 INFO L263 TraceCheckSpWp]: Trace formula consists of 183 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-17 09:41:00,980 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:01,043 INFO L134 CoverageAnalysis]: Checked inductivity of 25 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2023-02-17 09:41:01,047 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.1 stem predicates 4 loop predicates [2023-02-17 09:41:01,048 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 28 states and 42 transitions. cyclomatic complexity: 16 Second operand has 5 states, 5 states have (on average 3.4) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2023-02-17 09:41:01,179 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (21)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:01,249 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 28 states and 42 transitions. cyclomatic complexity: 16. Second operand has 5 states, 5 states have (on average 3.4) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Result 173 states and 260 transitions. Complement of second has 20 states. [2023-02-17 09:41:01,250 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 7 states 1 stem states 5 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:01,251 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 3.4) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2023-02-17 09:41:01,252 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 78 transitions. [2023-02-17 09:41:01,252 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 7 states and 78 transitions. Stem has 4 letters. Loop has 29 letters. [2023-02-17 09:41:01,254 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:01,254 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 7 states and 78 transitions. Stem has 33 letters. Loop has 29 letters. [2023-02-17 09:41:01,256 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:01,256 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 7 states and 78 transitions. Stem has 4 letters. Loop has 58 letters. [2023-02-17 09:41:01,257 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:01,257 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 173 states and 260 transitions. [2023-02-17 09:41:01,269 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 40 [2023-02-17 09:41:01,274 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 173 states to 172 states and 259 transitions. [2023-02-17 09:41:01,274 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 87 [2023-02-17 09:41:01,274 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 88 [2023-02-17 09:41:01,274 INFO L73 IsDeterministic]: Start isDeterministic. Operand 172 states and 259 transitions. [2023-02-17 09:41:01,275 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:01,275 INFO L218 hiAutomatonCegarLoop]: Abstraction has 172 states and 259 transitions. [2023-02-17 09:41:01,275 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 172 states and 259 transitions. [2023-02-17 09:41:01,288 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 172 to 151. [2023-02-17 09:41:01,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 151 states, 89 states have (on average 1.2359550561797752) internal successors, (110), 98 states have internal predecessors, (110), 46 states have call successors, (46), 10 states have call predecessors, (46), 16 states have return successors, (70), 42 states have call predecessors, (70), 46 states have call successors, (70) [2023-02-17 09:41:01,291 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 151 states to 151 states and 226 transitions. [2023-02-17 09:41:01,291 INFO L240 hiAutomatonCegarLoop]: Abstraction has 151 states and 226 transitions. [2023-02-17 09:41:01,291 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:01,292 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2023-02-17 09:41:01,292 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2023-02-17 09:41:01,292 INFO L87 Difference]: Start difference. First operand 151 states and 226 transitions. Second operand has 4 states, 4 states have (on average 4.25) internal successors, (17), 4 states have internal predecessors, (17), 1 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2023-02-17 09:41:01,319 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:01,319 INFO L93 Difference]: Finished difference Result 91 states and 128 transitions. [2023-02-17 09:41:01,319 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 91 states and 128 transitions. [2023-02-17 09:41:01,320 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 26 [2023-02-17 09:41:01,322 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 91 states to 48 states and 66 transitions. [2023-02-17 09:41:01,322 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 48 [2023-02-17 09:41:01,322 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 48 [2023-02-17 09:41:01,322 INFO L73 IsDeterministic]: Start isDeterministic. Operand 48 states and 66 transitions. [2023-02-17 09:41:01,323 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2023-02-17 09:41:01,323 INFO L218 hiAutomatonCegarLoop]: Abstraction has 48 states and 66 transitions. [2023-02-17 09:41:01,323 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states and 66 transitions. [2023-02-17 09:41:01,326 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 44. [2023-02-17 09:41:01,326 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 29 states have internal predecessors, (33), 12 states have call successors, (12), 3 states have call predecessors, (12), 4 states have return successors, (17), 11 states have call predecessors, (17), 12 states have call successors, (17) [2023-02-17 09:41:01,327 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 62 transitions. [2023-02-17 09:41:01,327 INFO L240 hiAutomatonCegarLoop]: Abstraction has 44 states and 62 transitions. [2023-02-17 09:41:01,327 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2023-02-17 09:41:01,328 INFO L428 stractBuchiCegarLoop]: Abstraction has 44 states and 62 transitions. [2023-02-17 09:41:01,328 INFO L335 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2023-02-17 09:41:01,328 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 44 states and 62 transitions. [2023-02-17 09:41:01,329 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 23 [2023-02-17 09:41:01,329 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:01,329 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:01,330 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1] [2023-02-17 09:41:01,330 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:01,330 INFO L748 eck$LassoCheckResult]: Stem: 1066#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1049#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 1050#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1059#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 1054#L41-3 [2023-02-17 09:41:01,330 INFO L750 eck$LassoCheckResult]: Loop: 1054#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1061#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1048#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1046#$Ultimate##0 ~n := #in~n; 1077#L25 assume ~n <= 0;#res := 1; 1076#factFINAL assume true; 1075#factEXIT >#68#return; 1063#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1046#$Ultimate##0 ~n := #in~n; 1077#L25 assume ~n <= 0;#res := 1; 1076#factFINAL assume true; 1075#factEXIT >#70#return; 1045#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1046#$Ultimate##0 ~n := #in~n; 1077#L25 assume ~n <= 0;#res := 1; 1076#factFINAL assume true; 1075#factEXIT >#72#return; 1056#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1057#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1060#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1065#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1058#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1054#L41-3 [2023-02-17 09:41:01,331 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:01,331 INFO L85 PathProgramCache]: Analyzing trace with hash 1171944, now seen corresponding path program 4 times [2023-02-17 09:41:01,331 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:01,331 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [449875682] [2023-02-17 09:41:01,331 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:01,331 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:01,334 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:01,334 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:01,336 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:01,337 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:01,337 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:01,337 INFO L85 PathProgramCache]: Analyzing trace with hash -743603515, now seen corresponding path program 1 times [2023-02-17 09:41:01,337 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:01,338 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [591797053] [2023-02-17 09:41:01,338 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:01,338 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:01,344 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:01,344 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [915799843] [2023-02-17 09:41:01,344 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:01,344 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:01,345 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,346 INFO L229 MonitoredProcess]: Starting monitored process 22 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,374 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (22)] Waiting until timeout for monitored process [2023-02-17 09:41:01,390 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:01,390 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:01,398 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:01,406 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:01,407 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:01,407 INFO L85 PathProgramCache]: Analyzing trace with hash 343305470, now seen corresponding path program 1 times [2023-02-17 09:41:01,407 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:01,407 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1709258558] [2023-02-17 09:41:01,407 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:01,408 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:01,415 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:01,416 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1449456802] [2023-02-17 09:41:01,416 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:01,416 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:01,416 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,418 INFO L229 MonitoredProcess]: Starting monitored process 23 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,420 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (23)] Waiting until timeout for monitored process [2023-02-17 09:41:01,452 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:01,452 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:01,461 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:01,469 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:01,481 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:01,481 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:01,481 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:01,481 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:01,481 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:01,481 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,481 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:01,482 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:01,482 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration4_Loop [2023-02-17 09:41:01,482 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:01,482 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:01,485 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,486 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,487 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,488 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,489 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,490 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,491 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,492 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:01,497 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:01,497 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:01,497 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,497 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,501 INFO L229 MonitoredProcess]: Starting monitored process 24 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,505 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:01,506 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:01,514 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (24)] Waiting until timeout for monitored process [2023-02-17 09:41:01,529 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:01,529 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:01,536 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (24)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:01,536 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,537 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,538 INFO L229 MonitoredProcess]: Starting monitored process 25 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,542 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (25)] Waiting until timeout for monitored process [2023-02-17 09:41:01,543 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:01,543 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:01,565 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:01,565 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~ret9#1=0} Honda state: {ULTIMATE.start_main_#t~ret9#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:01,568 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (25)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:01,569 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,569 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,571 INFO L229 MonitoredProcess]: Starting monitored process 26 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,580 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:01,580 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:01,591 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (26)] Waiting until timeout for monitored process [2023-02-17 09:41:01,600 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:01,600 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:01,605 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (26)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:01,605 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,605 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,606 INFO L229 MonitoredProcess]: Starting monitored process 27 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,613 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:01,613 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:01,622 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (27)] Waiting until timeout for monitored process [2023-02-17 09:41:01,633 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:01,633 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret1#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret1#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:01,639 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (27)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:01,639 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,639 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,640 INFO L229 MonitoredProcess]: Starting monitored process 28 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,646 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:01,646 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:01,653 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (28)] Waiting until timeout for monitored process [2023-02-17 09:41:01,667 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:01,667 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post8#1=0} Honda state: {ULTIMATE.start_main_#t~post8#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:01,674 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (28)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:01,674 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,674 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,675 INFO L229 MonitoredProcess]: Starting monitored process 29 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,677 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (29)] Waiting until timeout for monitored process [2023-02-17 09:41:01,678 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:01,678 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:01,706 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (29)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:01,706 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:01,706 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:01,707 INFO L229 MonitoredProcess]: Starting monitored process 30 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:01,712 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:01,712 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:01,736 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (30)] Waiting until timeout for monitored process [2023-02-17 09:41:02,005 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:02,010 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (30)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:02,010 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:02,010 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:02,011 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:02,011 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:02,011 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:02,011 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:02,011 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:02,011 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:02,011 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration4_Loop [2023-02-17 09:41:02,011 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:02,011 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:02,012 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,014 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,015 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,017 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,018 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,019 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,019 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,020 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:02,025 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:02,027 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:02,027 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:02,027 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:02,028 INFO L229 MonitoredProcess]: Starting monitored process 31 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:02,031 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (31)] Waiting until timeout for monitored process [2023-02-17 09:41:02,032 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:02,040 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:02,041 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:02,041 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:02,041 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:02,041 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:02,042 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:02,042 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:02,065 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:02,071 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (31)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:02,071 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:02,072 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:02,073 INFO L229 MonitoredProcess]: Starting monitored process 32 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:02,077 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:02,084 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:02,085 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:02,085 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:02,085 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:02,085 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:02,085 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:02,085 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:02,087 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (32)] Waiting until timeout for monitored process [2023-02-17 09:41:02,101 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:02,108 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (32)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:02,108 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:02,108 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:02,109 INFO L229 MonitoredProcess]: Starting monitored process 33 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:02,117 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:02,126 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:02,126 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:02,126 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:02,126 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:02,126 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:02,129 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:02,129 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:02,133 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (33)] Waiting until timeout for monitored process [2023-02-17 09:41:02,140 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:02,153 INFO L443 ModelExtractionUtils]: Simplification made 4 calls to the SMT solver. [2023-02-17 09:41:02,153 INFO L444 ModelExtractionUtils]: 5 out of 9 variables were initially zero. Simplification set additionally 1 variables to zero. [2023-02-17 09:41:02,153 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:02,153 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:02,155 INFO L229 MonitoredProcess]: Starting monitored process 34 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:02,156 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (34)] Waiting until timeout for monitored process [2023-02-17 09:41:02,157 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:02,157 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:02,157 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:02,157 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~n~0#1) = -2*ULTIMATE.start_main_~n~0#1 + 1 Supporting invariants [] [2023-02-17 09:41:02,163 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (33)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:02,163 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:02,176 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:02,180 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:02,181 INFO L263 TraceCheckSpWp]: Trace formula consists of 12 conjuncts, 2 conjunts are in the unsatisfiable core [2023-02-17 09:41:02,181 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:02,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:02,212 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-17 09:41:02,213 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:02,249 INFO L134 CoverageAnalysis]: Checked inductivity of 13 backedges. 1 proven. 6 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2023-02-17 09:41:02,250 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.1 stem predicates 6 loop predicates [2023-02-17 09:41:02,250 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 44 states and 62 transitions. cyclomatic complexity: 20 Second operand has 8 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 8 states have internal predecessors, (18), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 1 states have call predecessors, (3), 2 states have call successors, (3) [2023-02-17 09:41:02,450 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 44 states and 62 transitions. cyclomatic complexity: 20. Second operand has 8 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 8 states have internal predecessors, (18), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 1 states have call predecessors, (3), 2 states have call successors, (3) Result 159 states and 242 transitions. Complement of second has 26 states. [2023-02-17 09:41:02,450 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 8 states 1 stem states 6 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:02,451 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 8 states have internal predecessors, (18), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 1 states have call predecessors, (3), 2 states have call successors, (3) [2023-02-17 09:41:02,451 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 71 transitions. [2023-02-17 09:41:02,451 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 71 transitions. Stem has 4 letters. Loop has 23 letters. [2023-02-17 09:41:02,452 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:02,452 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 71 transitions. Stem has 27 letters. Loop has 23 letters. [2023-02-17 09:41:02,452 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:02,452 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 71 transitions. Stem has 4 letters. Loop has 46 letters. [2023-02-17 09:41:02,453 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:02,453 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 159 states and 242 transitions. [2023-02-17 09:41:02,456 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 36 [2023-02-17 09:41:02,458 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 159 states to 158 states and 241 transitions. [2023-02-17 09:41:02,458 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 80 [2023-02-17 09:41:02,459 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 81 [2023-02-17 09:41:02,459 INFO L73 IsDeterministic]: Start isDeterministic. Operand 158 states and 241 transitions. [2023-02-17 09:41:02,460 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:02,460 INFO L218 hiAutomatonCegarLoop]: Abstraction has 158 states and 241 transitions. [2023-02-17 09:41:02,461 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 158 states and 241 transitions. [2023-02-17 09:41:02,469 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 158 to 149. [2023-02-17 09:41:02,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 149 states, 89 states have (on average 1.2134831460674158) internal successors, (108), 96 states have internal predecessors, (108), 44 states have call successors, (44), 10 states have call predecessors, (44), 16 states have return successors, (70), 42 states have call predecessors, (70), 44 states have call successors, (70) [2023-02-17 09:41:02,471 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 222 transitions. [2023-02-17 09:41:02,471 INFO L240 hiAutomatonCegarLoop]: Abstraction has 149 states and 222 transitions. [2023-02-17 09:41:02,472 INFO L428 stractBuchiCegarLoop]: Abstraction has 149 states and 222 transitions. [2023-02-17 09:41:02,472 INFO L335 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2023-02-17 09:41:02,472 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 149 states and 222 transitions. [2023-02-17 09:41:02,473 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 36 [2023-02-17 09:41:02,473 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:02,473 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:02,474 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-17 09:41:02,474 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:02,474 INFO L748 eck$LassoCheckResult]: Stem: 1440#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 1398#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 1399#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 1421#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 1441#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1412#L42-3 [2023-02-17 09:41:02,474 INFO L750 eck$LassoCheckResult]: Loop: 1412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 1424#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 1425#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 1463#$Ultimate##0 ~n := #in~n; 1484#L25 assume !(~n <= 0); 1408#L26 call #t~ret0 := fact(~n - 1);< 1409#$Ultimate##0 ~n := #in~n; 1431#L25 assume ~n <= 0;#res := 1; 1519#factFINAL assume true; 1473#factEXIT >#66#return; 1476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 1482#factFINAL assume true; 1477#factEXIT >#68#return; 1461#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 1463#$Ultimate##0 ~n := #in~n; 1484#L25 assume ~n <= 0;#res := 1; 1483#factFINAL assume true; 1460#factEXIT >#70#return; 1462#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 1463#$Ultimate##0 ~n := #in~n; 1484#L25 assume ~n <= 0;#res := 1; 1483#factFINAL assume true; 1460#factEXIT >#72#return; 1451#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 1449#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 1447#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 1445#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 1418#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 1411#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 1412#L42-3 [2023-02-17 09:41:02,475 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:02,475 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 1 times [2023-02-17 09:41:02,475 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:02,475 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1986176287] [2023-02-17 09:41:02,497 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:02,497 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:02,501 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:02,501 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (34)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:02,504 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:02,506 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:02,510 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:02,512 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:02,512 INFO L85 PathProgramCache]: Analyzing trace with hash -304298247, now seen corresponding path program 1 times [2023-02-17 09:41:02,512 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:02,512 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1682455911] [2023-02-17 09:41:02,512 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:02,513 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:02,526 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:02,527 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [578509344] [2023-02-17 09:41:02,527 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:02,527 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:02,527 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:02,528 INFO L229 MonitoredProcess]: Starting monitored process 35 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:02,551 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (35)] Waiting until timeout for monitored process [2023-02-17 09:41:02,569 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:02,571 INFO L263 TraceCheckSpWp]: Trace formula consists of 71 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-17 09:41:02,572 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:02,598 INFO L134 CoverageAnalysis]: Checked inductivity of 25 backedges. 9 proven. 7 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2023-02-17 09:41:02,598 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:02,685 INFO L134 CoverageAnalysis]: Checked inductivity of 25 backedges. 9 proven. 7 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2023-02-17 09:41:02,685 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:02,686 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1682455911] [2023-02-17 09:41:02,686 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:02,686 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [578509344] [2023-02-17 09:41:02,686 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [578509344] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:02,687 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:02,687 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 11 [2023-02-17 09:41:02,687 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [81299749] [2023-02-17 09:41:02,687 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:02,688 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:02,688 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:02,688 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2023-02-17 09:41:02,689 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=25, Invalid=85, Unknown=0, NotChecked=0, Total=110 [2023-02-17 09:41:02,689 INFO L87 Difference]: Start difference. First operand 149 states and 222 transitions. cyclomatic complexity: 78 Second operand has 11 states, 8 states have (on average 2.75) internal successors, (22), 8 states have internal predecessors, (22), 5 states have call successors, (5), 1 states have call predecessors, (5), 3 states have return successors, (6), 5 states have call predecessors, (6), 5 states have call successors, (6) [2023-02-17 09:41:02,881 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:02,882 INFO L93 Difference]: Finished difference Result 291 states and 422 transitions. [2023-02-17 09:41:02,882 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 291 states and 422 transitions. [2023-02-17 09:41:02,886 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 89 [2023-02-17 09:41:02,890 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 291 states to 291 states and 422 transitions. [2023-02-17 09:41:02,890 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 143 [2023-02-17 09:41:02,890 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 143 [2023-02-17 09:41:02,891 INFO L73 IsDeterministic]: Start isDeterministic. Operand 291 states and 422 transitions. [2023-02-17 09:41:02,891 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:02,891 INFO L218 hiAutomatonCegarLoop]: Abstraction has 291 states and 422 transitions. [2023-02-17 09:41:02,891 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 291 states and 422 transitions. [2023-02-17 09:41:02,911 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 291 to 169. [2023-02-17 09:41:02,911 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 169 states, 101 states have (on average 1.188118811881188) internal successors, (120), 102 states have internal predecessors, (120), 52 states have call successors, (52), 16 states have call predecessors, (52), 16 states have return successors, (80), 50 states have call predecessors, (80), 52 states have call successors, (80) [2023-02-17 09:41:02,913 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 169 states to 169 states and 252 transitions. [2023-02-17 09:41:02,913 INFO L240 hiAutomatonCegarLoop]: Abstraction has 169 states and 252 transitions. [2023-02-17 09:41:02,916 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-17 09:41:02,917 INFO L428 stractBuchiCegarLoop]: Abstraction has 169 states and 252 transitions. [2023-02-17 09:41:02,917 INFO L335 stractBuchiCegarLoop]: ======== Iteration 6 ============ [2023-02-17 09:41:02,917 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 169 states and 252 transitions. [2023-02-17 09:41:02,919 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 40 [2023-02-17 09:41:02,919 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:02,919 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:02,920 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-17 09:41:02,920 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [5, 5, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:02,920 INFO L748 eck$LassoCheckResult]: Stem: 2067#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 2032#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 2033#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 2050#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 2068#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 2043#L42-3 [2023-02-17 09:41:02,920 INFO L750 eck$LassoCheckResult]: Loop: 2043#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 2053#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 2020#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 2021#$Ultimate##0 ~n := #in~n; 2130#L25 assume !(~n <= 0); 2038#L26 call #t~ret0 := fact(~n - 1);< 2039#$Ultimate##0 ~n := #in~n; 2120#L25 assume ~n <= 0;#res := 1; 2119#factFINAL assume true; 2107#factEXIT >#66#return; 2055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 2024#factFINAL assume true; 2027#factEXIT >#68#return; 2025#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 2021#$Ultimate##0 ~n := #in~n; 2130#L25 assume ~n <= 0;#res := 1; 2129#factFINAL assume true; 2126#factEXIT >#70#return; 2016#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 2017#$Ultimate##0 ~n := #in~n; 2063#L25 assume !(~n <= 0); 2038#L26 call #t~ret0 := fact(~n - 1);< 2039#$Ultimate##0 ~n := #in~n; 2120#L25 assume ~n <= 0;#res := 1; 2119#factFINAL assume true; 2107#factEXIT >#66#return; 2055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 2024#factFINAL assume true; 2027#factEXIT >#72#return; 2102#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 2092#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 2090#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 2088#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 2048#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 2042#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 2043#L42-3 [2023-02-17 09:41:02,920 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:02,921 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 2 times [2023-02-17 09:41:02,921 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:02,921 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [39623747] [2023-02-17 09:41:02,921 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:02,921 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:02,924 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:02,924 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:02,928 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:02,932 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:02,932 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:02,932 INFO L85 PathProgramCache]: Analyzing trace with hash 1403101825, now seen corresponding path program 2 times [2023-02-17 09:41:02,932 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:02,932 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1557200844] [2023-02-17 09:41:02,932 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:02,933 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:02,944 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:02,944 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [721366503] [2023-02-17 09:41:02,944 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:02,944 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:02,945 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:02,947 INFO L229 MonitoredProcess]: Starting monitored process 36 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:02,950 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (36)] Waiting until timeout for monitored process [2023-02-17 09:41:02,985 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:02,985 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:02,986 INFO L263 TraceCheckSpWp]: Trace formula consists of 83 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-17 09:41:02,987 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:03,047 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 6 proven. 18 refuted. 0 times theorem prover too weak. 19 trivial. 0 not checked. [2023-02-17 09:41:03,047 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:03,175 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 6 proven. 18 refuted. 0 times theorem prover too weak. 19 trivial. 0 not checked. [2023-02-17 09:41:03,175 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:03,175 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1557200844] [2023-02-17 09:41:03,175 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:03,175 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [721366503] [2023-02-17 09:41:03,176 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [721366503] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:03,176 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:03,176 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 19 [2023-02-17 09:41:03,176 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [157063086] [2023-02-17 09:41:03,176 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:03,177 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:03,177 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:03,177 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2023-02-17 09:41:03,177 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=317, Unknown=0, NotChecked=0, Total=380 [2023-02-17 09:41:03,178 INFO L87 Difference]: Start difference. First operand 169 states and 252 transitions. cyclomatic complexity: 88 Second operand has 20 states, 15 states have (on average 2.066666666666667) internal successors, (31), 18 states have internal predecessors, (31), 8 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (8), 6 states have call predecessors, (8), 8 states have call successors, (8) [2023-02-17 09:41:03,739 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:03,739 INFO L93 Difference]: Finished difference Result 338 states and 514 transitions. [2023-02-17 09:41:03,739 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 338 states and 514 transitions. [2023-02-17 09:41:03,743 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 114 [2023-02-17 09:41:03,747 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 338 states to 325 states and 500 transitions. [2023-02-17 09:41:03,748 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 164 [2023-02-17 09:41:03,748 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 164 [2023-02-17 09:41:03,748 INFO L73 IsDeterministic]: Start isDeterministic. Operand 325 states and 500 transitions. [2023-02-17 09:41:03,749 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:03,749 INFO L218 hiAutomatonCegarLoop]: Abstraction has 325 states and 500 transitions. [2023-02-17 09:41:03,749 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 325 states and 500 transitions. [2023-02-17 09:41:03,758 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 325 to 203. [2023-02-17 09:41:03,758 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 203 states, 127 states have (on average 1.1496062992125984) internal successors, (146), 128 states have internal predecessors, (146), 60 states have call successors, (60), 16 states have call predecessors, (60), 16 states have return successors, (96), 58 states have call predecessors, (96), 60 states have call successors, (96) [2023-02-17 09:41:03,760 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 203 states to 203 states and 302 transitions. [2023-02-17 09:41:03,760 INFO L240 hiAutomatonCegarLoop]: Abstraction has 203 states and 302 transitions. [2023-02-17 09:41:03,761 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2023-02-17 09:41:03,763 INFO L428 stractBuchiCegarLoop]: Abstraction has 203 states and 302 transitions. [2023-02-17 09:41:03,763 INFO L335 stractBuchiCegarLoop]: ======== Iteration 7 ============ [2023-02-17 09:41:03,763 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 203 states and 302 transitions. [2023-02-17 09:41:03,765 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 56 [2023-02-17 09:41:03,765 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:03,765 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:03,767 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-17 09:41:03,767 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [11, 11, 6, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:03,768 INFO L748 eck$LassoCheckResult]: Stem: 2836#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 2786#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 2787#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 2820#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 2837#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 2812#L42-3 [2023-02-17 09:41:03,768 INFO L750 eck$LassoCheckResult]: Loop: 2812#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 2889#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 2879#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 2883#$Ultimate##0 ~n := #in~n; 2887#L25 assume !(~n <= 0); 2865#L26 call #t~ret0 := fact(~n - 1);< 2802#$Ultimate##0 ~n := #in~n; 2899#L25 assume ~n <= 0;#res := 1; 2898#factFINAL assume true; 2864#factEXIT >#66#return; 2870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 2882#factFINAL assume true; 2876#factEXIT >#68#return; 2880#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 2883#$Ultimate##0 ~n := #in~n; 2887#L25 assume !(~n <= 0); 2865#L26 call #t~ret0 := fact(~n - 1);< 2802#$Ultimate##0 ~n := #in~n; 2899#L25 assume ~n <= 0;#res := 1; 2898#factFINAL assume true; 2864#factEXIT >#66#return; 2870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 2882#factFINAL assume true; 2876#factEXIT >#70#return; 2877#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 2883#$Ultimate##0 ~n := #in~n; 2887#L25 assume ~n <= 0;#res := 1; 2886#factFINAL assume true; 2885#factEXIT >#72#return; 2859#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 2907#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 2906#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 2905#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 2841#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 2848#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 2862#$Ultimate##0 ~n := #in~n; 2892#L25 assume !(~n <= 0); 2867#L26 call #t~ret0 := fact(~n - 1);< 2802#$Ultimate##0 ~n := #in~n; 2899#L25 assume ~n <= 0;#res := 1; 2898#factFINAL assume true; 2864#factEXIT >#66#return; 2863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 2861#factFINAL assume true; 2851#factEXIT >#74#return; 2856#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 2862#$Ultimate##0 ~n := #in~n; 2892#L25 assume !(~n <= 0); 2867#L26 call #t~ret0 := fact(~n - 1);< 2802#$Ultimate##0 ~n := #in~n; 2899#L25 assume ~n <= 0;#res := 1; 2898#factFINAL assume true; 2864#factEXIT >#66#return; 2863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 2861#factFINAL assume true; 2851#factEXIT >#76#return; 2853#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 2860#$Ultimate##0 ~n := #in~n; 2871#L25 assume !(~n <= 0); 2867#L26 call #t~ret0 := fact(~n - 1);< 2802#$Ultimate##0 ~n := #in~n; 2899#L25 assume ~n <= 0;#res := 1; 2898#factFINAL assume true; 2864#factEXIT >#66#return; 2863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 2861#factFINAL assume true; 2851#factEXIT >#78#return; 2850#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 2849#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 2842#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 2840#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 2817#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 2811#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 2812#L42-3 [2023-02-17 09:41:03,768 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:03,768 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 3 times [2023-02-17 09:41:03,769 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:03,769 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [299313319] [2023-02-17 09:41:03,769 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:03,769 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:03,776 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:03,776 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:03,779 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:03,783 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:03,783 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:03,783 INFO L85 PathProgramCache]: Analyzing trace with hash 1981125996, now seen corresponding path program 1 times [2023-02-17 09:41:03,783 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:03,783 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [151345383] [2023-02-17 09:41:03,783 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:03,784 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:03,791 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:03,791 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [204143850] [2023-02-17 09:41:03,791 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:03,791 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:03,791 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:03,794 INFO L229 MonitoredProcess]: Starting monitored process 37 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:03,795 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (37)] Waiting until timeout for monitored process [2023-02-17 09:41:03,844 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:03,845 INFO L263 TraceCheckSpWp]: Trace formula consists of 170 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-17 09:41:03,848 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:03,898 INFO L134 CoverageAnalysis]: Checked inductivity of 245 backedges. 165 proven. 14 refuted. 0 times theorem prover too weak. 66 trivial. 0 not checked. [2023-02-17 09:41:03,898 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:03,994 INFO L134 CoverageAnalysis]: Checked inductivity of 245 backedges. 41 proven. 59 refuted. 0 times theorem prover too weak. 145 trivial. 0 not checked. [2023-02-17 09:41:03,994 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:03,995 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [151345383] [2023-02-17 09:41:03,995 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:03,995 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [204143850] [2023-02-17 09:41:03,995 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [204143850] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:03,995 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:03,995 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 15 [2023-02-17 09:41:03,995 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1197963503] [2023-02-17 09:41:03,996 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:03,996 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:03,996 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:03,997 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2023-02-17 09:41:03,997 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=171, Unknown=0, NotChecked=0, Total=210 [2023-02-17 09:41:03,997 INFO L87 Difference]: Start difference. First operand 203 states and 302 transitions. cyclomatic complexity: 104 Second operand has 15 states, 12 states have (on average 3.3333333333333335) internal successors, (40), 15 states have internal predecessors, (40), 9 states have call successors, (15), 2 states have call predecessors, (15), 5 states have return successors, (15), 7 states have call predecessors, (15), 9 states have call successors, (15) [2023-02-17 09:41:04,349 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:04,349 INFO L93 Difference]: Finished difference Result 349 states and 576 transitions. [2023-02-17 09:41:04,349 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 349 states and 576 transitions. [2023-02-17 09:41:04,354 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 90 [2023-02-17 09:41:04,358 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 349 states to 349 states and 576 transitions. [2023-02-17 09:41:04,358 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 171 [2023-02-17 09:41:04,358 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 171 [2023-02-17 09:41:04,359 INFO L73 IsDeterministic]: Start isDeterministic. Operand 349 states and 576 transitions. [2023-02-17 09:41:04,359 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:04,359 INFO L218 hiAutomatonCegarLoop]: Abstraction has 349 states and 576 transitions. [2023-02-17 09:41:04,359 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 349 states and 576 transitions. [2023-02-17 09:41:04,368 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 349 to 279. [2023-02-17 09:41:04,369 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 279 states, 175 states have (on average 1.1257142857142857) internal successors, (197), 176 states have internal predecessors, (197), 80 states have call successors, (80), 16 states have call predecessors, (80), 24 states have return successors, (184), 86 states have call predecessors, (184), 80 states have call successors, (184) [2023-02-17 09:41:04,371 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 279 states to 279 states and 461 transitions. [2023-02-17 09:41:04,371 INFO L240 hiAutomatonCegarLoop]: Abstraction has 279 states and 461 transitions. [2023-02-17 09:41:04,372 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-17 09:41:04,372 INFO L428 stractBuchiCegarLoop]: Abstraction has 279 states and 461 transitions. [2023-02-17 09:41:04,372 INFO L335 stractBuchiCegarLoop]: ======== Iteration 8 ============ [2023-02-17 09:41:04,373 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 279 states and 461 transitions. [2023-02-17 09:41:04,374 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 82 [2023-02-17 09:41:04,375 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:04,375 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:04,376 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-17 09:41:04,376 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [12, 12, 6, 6, 6, 6, 6, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:04,376 INFO L748 eck$LassoCheckResult]: Stem: 3867#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 3818#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 3819#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 3842#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 3868#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 3835#L42-3 [2023-02-17 09:41:04,376 INFO L750 eck$LassoCheckResult]: Loop: 3835#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 3923#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 3913#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 3920#$Ultimate##0 ~n := #in~n; 3922#L25 assume !(~n <= 0); 3906#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3918#L25 assume ~n <= 0;#res := 1; 3916#factFINAL assume true; 3903#factEXIT >#66#return; 3908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3931#factFINAL assume true; 3910#factEXIT >#68#return; 3911#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 3920#$Ultimate##0 ~n := #in~n; 3922#L25 assume !(~n <= 0); 3906#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3918#L25 assume ~n <= 0;#res := 1; 3916#factFINAL assume true; 3903#factEXIT >#66#return; 3908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3931#factFINAL assume true; 3910#factEXIT >#70#return; 3914#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 3920#$Ultimate##0 ~n := #in~n; 3922#L25 assume !(~n <= 0); 3906#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3918#L25 assume ~n <= 0;#res := 1; 3916#factFINAL assume true; 3903#factEXIT >#66#return; 3908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3931#factFINAL assume true; 3910#factEXIT >#72#return; 3887#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 3938#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 3929#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 3928#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 3871#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 3881#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 3889#$Ultimate##0 ~n := #in~n; 3917#L25 assume !(~n <= 0); 3896#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3918#L25 assume !(~n <= 0); 3904#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3918#L25 assume ~n <= 0;#res := 1; 3916#factFINAL assume true; 3903#factEXIT >#66#return; 3907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3937#factFINAL assume true; 3925#factEXIT >#66#return; 3924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3892#factFINAL assume true; 3893#factEXIT >#74#return; 3876#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 3891#$Ultimate##0 ~n := #in~n; 3895#L25 assume ~n <= 0;#res := 1; 3894#factFINAL assume true; 3890#factEXIT >#76#return; 3885#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 3889#$Ultimate##0 ~n := #in~n; 3917#L25 assume !(~n <= 0); 3896#L26 call #t~ret0 := fact(~n - 1);< 3831#$Ultimate##0 ~n := #in~n; 3918#L25 assume ~n <= 0;#res := 1; 3916#factFINAL assume true; 3903#factEXIT >#66#return; 3902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 3900#factFINAL assume true; 3875#factEXIT >#78#return; 3874#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 3873#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 3872#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 3870#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 3840#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 3834#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 3835#L42-3 [2023-02-17 09:41:04,377 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:04,377 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 4 times [2023-02-17 09:41:04,377 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:04,377 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2144501505] [2023-02-17 09:41:04,377 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:04,377 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:04,380 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:04,380 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:04,382 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:04,383 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:04,383 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:04,383 INFO L85 PathProgramCache]: Analyzing trace with hash -1060269836, now seen corresponding path program 2 times [2023-02-17 09:41:04,383 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:04,383 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [993836191] [2023-02-17 09:41:04,384 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:04,384 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:04,389 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:04,390 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [319611405] [2023-02-17 09:41:04,390 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:04,390 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:04,390 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:04,393 INFO L229 MonitoredProcess]: Starting monitored process 38 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:04,394 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (38)] Waiting until timeout for monitored process [2023-02-17 09:41:04,443 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:04,443 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:04,444 INFO L263 TraceCheckSpWp]: Trace formula consists of 182 conjuncts, 11 conjunts are in the unsatisfiable core [2023-02-17 09:41:04,446 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:04,485 INFO L134 CoverageAnalysis]: Checked inductivity of 299 backedges. 172 proven. 35 refuted. 0 times theorem prover too weak. 92 trivial. 0 not checked. [2023-02-17 09:41:04,485 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:04,560 INFO L134 CoverageAnalysis]: Checked inductivity of 299 backedges. 10 proven. 126 refuted. 0 times theorem prover too weak. 163 trivial. 0 not checked. [2023-02-17 09:41:04,560 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:04,560 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [993836191] [2023-02-17 09:41:04,560 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:04,560 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [319611405] [2023-02-17 09:41:04,560 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [319611405] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:04,561 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:04,561 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 13 [2023-02-17 09:41:04,561 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1023598160] [2023-02-17 09:41:04,561 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:04,561 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:04,561 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:04,562 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-17 09:41:04,562 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=123, Unknown=0, NotChecked=0, Total=156 [2023-02-17 09:41:04,562 INFO L87 Difference]: Start difference. First operand 279 states and 461 transitions. cyclomatic complexity: 189 Second operand has 13 states, 10 states have (on average 3.8) internal successors, (38), 10 states have internal predecessors, (38), 8 states have call successors, (15), 2 states have call predecessors, (15), 5 states have return successors, (16), 7 states have call predecessors, (16), 8 states have call successors, (16) [2023-02-17 09:41:04,759 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:04,759 INFO L93 Difference]: Finished difference Result 437 states and 691 transitions. [2023-02-17 09:41:04,759 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 437 states and 691 transitions. [2023-02-17 09:41:04,763 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 132 [2023-02-17 09:41:04,768 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 437 states to 431 states and 683 transitions. [2023-02-17 09:41:04,768 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 214 [2023-02-17 09:41:04,769 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 214 [2023-02-17 09:41:04,769 INFO L73 IsDeterministic]: Start isDeterministic. Operand 431 states and 683 transitions. [2023-02-17 09:41:04,769 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:04,769 INFO L218 hiAutomatonCegarLoop]: Abstraction has 431 states and 683 transitions. [2023-02-17 09:41:04,769 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 431 states and 683 transitions. [2023-02-17 09:41:04,779 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 431 to 315. [2023-02-17 09:41:04,780 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 315 states, 195 states have (on average 1.1128205128205129) internal successors, (217), 188 states have internal predecessors, (217), 94 states have call successors, (94), 24 states have call predecessors, (94), 26 states have return successors, (216), 102 states have call predecessors, (216), 94 states have call successors, (216) [2023-02-17 09:41:04,782 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 315 states to 315 states and 527 transitions. [2023-02-17 09:41:04,782 INFO L240 hiAutomatonCegarLoop]: Abstraction has 315 states and 527 transitions. [2023-02-17 09:41:04,782 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-17 09:41:04,783 INFO L428 stractBuchiCegarLoop]: Abstraction has 315 states and 527 transitions. [2023-02-17 09:41:04,783 INFO L335 stractBuchiCegarLoop]: ======== Iteration 9 ============ [2023-02-17 09:41:04,783 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 315 states and 527 transitions. [2023-02-17 09:41:04,785 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 88 [2023-02-17 09:41:04,785 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:04,785 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:04,786 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1] [2023-02-17 09:41:04,786 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [11, 11, 6, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:04,786 INFO L748 eck$LassoCheckResult]: Stem: 5102#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 5035#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 5036#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 5055#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 5103#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 5046#L42-3 [2023-02-17 09:41:04,786 INFO L750 eck$LassoCheckResult]: Loop: 5046#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 5171#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 5165#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 5170#$Ultimate##0 ~n := #in~n; 5232#L25 assume !(~n <= 0); 5140#L26 call #t~ret0 := fact(~n - 1);< 5042#$Ultimate##0 ~n := #in~n; 5154#L25 assume ~n <= 0;#res := 1; 5153#factFINAL assume true; 5147#factEXIT >#66#return; 5148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 5168#factFINAL assume true; 5169#factEXIT >#68#return; 5161#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 5170#$Ultimate##0 ~n := #in~n; 5232#L25 assume !(~n <= 0); 5140#L26 call #t~ret0 := fact(~n - 1);< 5042#$Ultimate##0 ~n := #in~n; 5154#L25 assume ~n <= 0;#res := 1; 5153#factFINAL assume true; 5147#factEXIT >#66#return; 5148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 5168#factFINAL assume true; 5169#factEXIT >#70#return; 5166#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 5236#$Ultimate##0 ~n := #in~n; 5237#L25 assume ~n <= 0;#res := 1; 5235#factFINAL assume true; 5234#factEXIT >#72#return; 5049#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 5050#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 5086#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 5100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 5105#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 5116#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 5124#$Ultimate##0 ~n := #in~n; 5150#L25 assume !(~n <= 0); 5141#L26 call #t~ret0 := fact(~n - 1);< 5042#$Ultimate##0 ~n := #in~n; 5154#L25 assume !(~n <= 0); 5138#L26 call #t~ret0 := fact(~n - 1);< 5042#$Ultimate##0 ~n := #in~n; 5154#L25 assume ~n <= 0;#res := 1; 5153#factFINAL assume true; 5147#factEXIT >#66#return; 5144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 5155#factFINAL assume true; 5137#factEXIT >#66#return; 5134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 5127#factFINAL assume true; 5128#factEXIT >#74#return; 5119#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 5126#$Ultimate##0 ~n := #in~n; 5149#L25 assume ~n <= 0;#res := 1; 5129#factFINAL assume true; 5125#factEXIT >#76#return; 5114#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 5124#$Ultimate##0 ~n := #in~n; 5150#L25 assume !(~n <= 0); 5141#L26 call #t~ret0 := fact(~n - 1);< 5042#$Ultimate##0 ~n := #in~n; 5154#L25 assume ~n <= 0;#res := 1; 5153#factFINAL assume true; 5147#factEXIT >#66#return; 5136#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 5133#factFINAL assume true; 5109#factEXIT >#78#return; 5108#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 5107#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 5106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 5104#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 5053#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 5045#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 5046#L42-3 [2023-02-17 09:41:04,787 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:04,787 INFO L85 PathProgramCache]: Analyzing trace with hash 36330292, now seen corresponding path program 5 times [2023-02-17 09:41:04,787 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:04,787 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2051930070] [2023-02-17 09:41:04,787 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:04,787 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:04,790 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:04,790 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:04,791 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:04,792 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:04,792 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:04,792 INFO L85 PathProgramCache]: Analyzing trace with hash 1909065068, now seen corresponding path program 3 times [2023-02-17 09:41:04,793 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:04,793 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [482036974] [2023-02-17 09:41:04,793 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:04,793 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:04,798 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:04,798 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1739666095] [2023-02-17 09:41:04,798 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:04,798 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:04,798 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:04,804 INFO L229 MonitoredProcess]: Starting monitored process 39 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:04,813 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (39)] Waiting until timeout for monitored process [2023-02-17 09:41:04,867 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2023-02-17 09:41:04,867 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:04,868 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-17 09:41:04,869 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:04,899 INFO L134 CoverageAnalysis]: Checked inductivity of 245 backedges. 108 proven. 28 refuted. 0 times theorem prover too weak. 109 trivial. 0 not checked. [2023-02-17 09:41:04,899 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:04,953 INFO L134 CoverageAnalysis]: Checked inductivity of 245 backedges. 28 proven. 42 refuted. 0 times theorem prover too weak. 175 trivial. 0 not checked. [2023-02-17 09:41:04,953 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:04,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [482036974] [2023-02-17 09:41:04,953 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:04,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1739666095] [2023-02-17 09:41:04,954 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1739666095] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:04,954 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:04,954 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 12 [2023-02-17 09:41:04,954 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1495767220] [2023-02-17 09:41:04,954 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:04,955 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:04,955 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:04,955 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2023-02-17 09:41:04,955 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2023-02-17 09:41:04,955 INFO L87 Difference]: Start difference. First operand 315 states and 527 transitions. cyclomatic complexity: 219 Second operand has 12 states, 9 states have (on average 3.888888888888889) internal successors, (35), 12 states have internal predecessors, (35), 7 states have call successors, (11), 2 states have call predecessors, (11), 4 states have return successors, (11), 5 states have call predecessors, (11), 7 states have call successors, (11) [2023-02-17 09:41:05,222 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:05,223 INFO L93 Difference]: Finished difference Result 439 states and 739 transitions. [2023-02-17 09:41:05,223 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 439 states and 739 transitions. [2023-02-17 09:41:05,228 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 124 [2023-02-17 09:41:05,233 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 439 states to 437 states and 735 transitions. [2023-02-17 09:41:05,233 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 218 [2023-02-17 09:41:05,234 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 218 [2023-02-17 09:41:05,234 INFO L73 IsDeterministic]: Start isDeterministic. Operand 437 states and 735 transitions. [2023-02-17 09:41:05,234 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:05,234 INFO L218 hiAutomatonCegarLoop]: Abstraction has 437 states and 735 transitions. [2023-02-17 09:41:05,234 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 437 states and 735 transitions. [2023-02-17 09:41:05,243 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 437 to 372. [2023-02-17 09:41:05,244 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 372 states, 227 states have (on average 1.1233480176211454) internal successors, (255), 222 states have internal predecessors, (255), 119 states have call successors, (119), 24 states have call predecessors, (119), 26 states have return successors, (264), 125 states have call predecessors, (264), 118 states have call successors, (264) [2023-02-17 09:41:05,246 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 372 states to 372 states and 638 transitions. [2023-02-17 09:41:05,246 INFO L240 hiAutomatonCegarLoop]: Abstraction has 372 states and 638 transitions. [2023-02-17 09:41:05,247 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2023-02-17 09:41:05,247 INFO L428 stractBuchiCegarLoop]: Abstraction has 372 states and 638 transitions. [2023-02-17 09:41:05,247 INFO L335 stractBuchiCegarLoop]: ======== Iteration 10 ============ [2023-02-17 09:41:05,247 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 372 states and 638 transitions. [2023-02-17 09:41:05,249 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 104 [2023-02-17 09:41:05,250 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:05,250 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:05,250 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:05,250 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-17 09:41:05,251 INFO L748 eck$LassoCheckResult]: Stem: 6341#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 6299#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 6300#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 6320#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 6309#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 6310#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 6421#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 6384#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 6394#$Ultimate##0 ~n := #in~n; 6418#L25 assume !(~n <= 0); 6374#L26 call #t~ret0 := fact(~n - 1);< 6306#$Ultimate##0 [2023-02-17 09:41:05,251 INFO L750 eck$LassoCheckResult]: Loop: 6306#$Ultimate##0 ~n := #in~n; 6381#L25 assume !(~n <= 0); 6372#L26 call #t~ret0 := fact(~n - 1);< 6306#$Ultimate##0 [2023-02-17 09:41:05,251 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:05,251 INFO L85 PathProgramCache]: Analyzing trace with hash 271623377, now seen corresponding path program 1 times [2023-02-17 09:41:05,251 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:05,251 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1753101111] [2023-02-17 09:41:05,252 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:05,252 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:05,267 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:05,308 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2023-02-17 09:41:05,309 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:05,309 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1753101111] [2023-02-17 09:41:05,309 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1753101111] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-17 09:41:05,309 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-17 09:41:05,309 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2023-02-17 09:41:05,309 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [281880400] [2023-02-17 09:41:05,309 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-17 09:41:05,309 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:05,310 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:05,310 INFO L85 PathProgramCache]: Analyzing trace with hash 29980, now seen corresponding path program 1 times [2023-02-17 09:41:05,310 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:05,310 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [683687091] [2023-02-17 09:41:05,310 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:05,310 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:05,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:05,313 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:05,314 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:05,315 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:05,318 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:05,318 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:05,318 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:05,318 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:05,318 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:05,318 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,319 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:05,319 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:05,319 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration10_Loop [2023-02-17 09:41:05,319 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:05,319 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:05,320 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,320 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,321 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,322 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,325 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:05,325 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:05,325 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,325 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,329 INFO L229 MonitoredProcess]: Starting monitored process 40 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,338 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:05,338 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:05,347 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (40)] Waiting until timeout for monitored process [2023-02-17 09:41:05,361 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:05,361 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {fact_~n=0} Honda state: {fact_~n=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:05,367 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (40)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:05,368 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,368 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,369 INFO L229 MonitoredProcess]: Starting monitored process 41 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,371 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (41)] Waiting until timeout for monitored process [2023-02-17 09:41:05,372 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:05,373 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:05,402 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (41)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:05,402 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,402 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,403 INFO L229 MonitoredProcess]: Starting monitored process 42 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,409 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:05,409 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:05,421 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (42)] Waiting until timeout for monitored process [2023-02-17 09:41:05,432 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:05,438 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (42)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:05,438 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:05,438 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:05,438 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:05,438 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:05,439 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:05,439 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,439 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:05,439 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:05,439 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration10_Loop [2023-02-17 09:41:05,439 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:05,439 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:05,440 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,442 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,442 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,443 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,445 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:05,445 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:05,445 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,445 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,447 INFO L229 MonitoredProcess]: Starting monitored process 43 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,453 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:05,460 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:05,460 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:05,460 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:05,460 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:05,460 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:05,461 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:05,461 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:05,475 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (43)] Waiting until timeout for monitored process [2023-02-17 09:41:05,481 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:05,486 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (43)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:05,486 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,486 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,487 INFO L229 MonitoredProcess]: Starting monitored process 44 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,489 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (44)] Waiting until timeout for monitored process [2023-02-17 09:41:05,491 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:05,498 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:05,499 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:05,499 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:05,499 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:05,499 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:05,499 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:05,500 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:05,506 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:05,508 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:05,508 INFO L444 ModelExtractionUtils]: 0 out of 3 variables were initially zero. Simplification set additionally 1 variables to zero. [2023-02-17 09:41:05,509 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,509 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,510 INFO L229 MonitoredProcess]: Starting monitored process 45 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,511 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (45)] Waiting until timeout for monitored process [2023-02-17 09:41:05,514 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:05,514 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:05,515 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:05,515 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(fact_#in~n) = 1*fact_#in~n Supporting invariants [] [2023-02-17 09:41:05,517 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (44)] Ended with exit code 0 [2023-02-17 09:41:05,518 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:05,528 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:05,545 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:05,546 INFO L263 TraceCheckSpWp]: Trace formula consists of 92 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-17 09:41:05,546 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:05,554 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:05,555 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:05,555 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:05,563 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2023-02-17 09:41:05,564 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.1 stem predicates 3 loop predicates [2023-02-17 09:41:05,564 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 372 states and 638 transitions. cyclomatic complexity: 276 Second operand has 4 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 3 states have internal predecessors, (11), 2 states have call successors, (3), 2 states have call predecessors, (3), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2023-02-17 09:41:05,601 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 372 states and 638 transitions. cyclomatic complexity: 276. Second operand has 4 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 3 states have internal predecessors, (11), 2 states have call successors, (3), 2 states have call predecessors, (3), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Result 474 states and 806 transitions. Complement of second has 13 states. [2023-02-17 09:41:05,601 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 4 states 1 stem states 2 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:05,602 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 3 states have internal predecessors, (11), 2 states have call successors, (3), 2 states have call predecessors, (3), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2023-02-17 09:41:05,602 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2023-02-17 09:41:05,602 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 32 transitions. Stem has 11 letters. Loop has 3 letters. [2023-02-17 09:41:05,602 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:05,602 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 32 transitions. Stem has 14 letters. Loop has 3 letters. [2023-02-17 09:41:05,603 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:05,603 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 4 states and 32 transitions. Stem has 11 letters. Loop has 6 letters. [2023-02-17 09:41:05,603 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:05,603 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 474 states and 806 transitions. [2023-02-17 09:41:05,608 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 112 [2023-02-17 09:41:05,614 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 474 states to 462 states and 794 transitions. [2023-02-17 09:41:05,614 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 222 [2023-02-17 09:41:05,614 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 224 [2023-02-17 09:41:05,614 INFO L73 IsDeterministic]: Start isDeterministic. Operand 462 states and 794 transitions. [2023-02-17 09:41:05,615 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:05,615 INFO L218 hiAutomatonCegarLoop]: Abstraction has 462 states and 794 transitions. [2023-02-17 09:41:05,615 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 462 states and 794 transitions. [2023-02-17 09:41:05,625 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 462 to 458. [2023-02-17 09:41:05,626 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 458 states, 277 states have (on average 1.144404332129964) internal successors, (317), 282 states have internal predecessors, (317), 145 states have call successors, (145), 36 states have call predecessors, (145), 36 states have return successors, (324), 139 states have call predecessors, (324), 144 states have call successors, (324) [2023-02-17 09:41:05,629 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 458 states to 458 states and 786 transitions. [2023-02-17 09:41:05,629 INFO L240 hiAutomatonCegarLoop]: Abstraction has 458 states and 786 transitions. [2023-02-17 09:41:05,629 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:05,629 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2023-02-17 09:41:05,629 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2023-02-17 09:41:05,630 INFO L87 Difference]: Start difference. First operand 458 states and 786 transitions. Second operand has 6 states, 4 states have (on average 2.25) internal successors, (9), 5 states have internal predecessors, (9), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2023-02-17 09:41:05,680 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:05,680 INFO L93 Difference]: Finished difference Result 543 states and 909 transitions. [2023-02-17 09:41:05,680 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 543 states and 909 transitions. [2023-02-17 09:41:05,686 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 137 [2023-02-17 09:41:05,692 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 543 states to 537 states and 901 transitions. [2023-02-17 09:41:05,692 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 263 [2023-02-17 09:41:05,693 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 263 [2023-02-17 09:41:05,693 INFO L73 IsDeterministic]: Start isDeterministic. Operand 537 states and 901 transitions. [2023-02-17 09:41:05,693 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:05,693 INFO L218 hiAutomatonCegarLoop]: Abstraction has 537 states and 901 transitions. [2023-02-17 09:41:05,693 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 537 states and 901 transitions. [2023-02-17 09:41:05,704 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 537 to 528. [2023-02-17 09:41:05,705 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 528 states, 321 states have (on average 1.1308411214953271) internal successors, (363), 322 states have internal predecessors, (363), 167 states have call successors, (167), 40 states have call predecessors, (167), 40 states have return successors, (360), 165 states have call predecessors, (360), 166 states have call successors, (360) [2023-02-17 09:41:05,708 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 528 states to 528 states and 890 transitions. [2023-02-17 09:41:05,708 INFO L240 hiAutomatonCegarLoop]: Abstraction has 528 states and 890 transitions. [2023-02-17 09:41:05,709 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2023-02-17 09:41:05,709 INFO L428 stractBuchiCegarLoop]: Abstraction has 528 states and 890 transitions. [2023-02-17 09:41:05,709 INFO L335 stractBuchiCegarLoop]: ======== Iteration 11 ============ [2023-02-17 09:41:05,709 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 528 states and 890 transitions. [2023-02-17 09:41:05,712 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 134 [2023-02-17 09:41:05,712 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:05,712 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:05,713 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:05,713 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:05,713 INFO L748 eck$LassoCheckResult]: Stem: 8260#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 8171#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 8172#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 8198#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 8261#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 8383#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 8382#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 8377#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 8378#$Ultimate##0 ~n := #in~n; 8381#L25 assume ~n <= 0;#res := 1; 8380#factFINAL assume true; 8376#factEXIT >#68#return; 8356#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 8354#$Ultimate##0 ~n := #in~n; 8357#L25 assume !(~n <= 0); 8324#L26 call #t~ret0 := fact(~n - 1);< 8183#$Ultimate##0 ~n := #in~n; 8335#L25 assume ~n <= 0;#res := 1; 8479#factFINAL assume true; 8477#factEXIT >#66#return; 8301#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 8516#factFINAL assume true; 8514#factEXIT >#70#return; 8152#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 8163#$Ultimate##0 ~n := #in~n; 8254#L25 assume ~n <= 0;#res := 1; 8169#factFINAL assume true; 8147#factEXIT >#72#return; 8158#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 8192#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 8199#L42-2 [2023-02-17 09:41:05,713 INFO L750 eck$LassoCheckResult]: Loop: 8199#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 8250#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 8251#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 8143#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 8144#$Ultimate##0 ~n := #in~n; 8524#L25 assume !(~n <= 0); 8296#L26 call #t~ret0 := fact(~n - 1);< 8303#$Ultimate##0 ~n := #in~n; 8345#L25 assume !(~n <= 0); 8295#L26 call #t~ret0 := fact(~n - 1);< 8303#$Ultimate##0 ~n := #in~n; 8345#L25 assume !(~n <= 0); 8295#L26 call #t~ret0 := fact(~n - 1);< 8303#$Ultimate##0 ~n := #in~n; 8345#L25 assume ~n <= 0;#res := 1; 8318#factFINAL assume true; 8294#factEXIT >#66#return; 8300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 8329#factFINAL assume true; 8322#factEXIT >#66#return; 8300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 8329#factFINAL assume true; 8322#factEXIT >#66#return; 8325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 8527#factFINAL assume true; 8505#factEXIT >#74#return; 8232#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 8256#$Ultimate##0 ~n := #in~n; 8519#L25 assume ~n <= 0;#res := 1; 8517#factFINAL assume true; 8515#factEXIT >#76#return; 8209#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 8144#$Ultimate##0 ~n := #in~n; 8524#L25 assume !(~n <= 0); 8296#L26 call #t~ret0 := fact(~n - 1);< 8303#$Ultimate##0 ~n := #in~n; 8345#L25 assume !(~n <= 0); 8295#L26 call #t~ret0 := fact(~n - 1);< 8303#$Ultimate##0 ~n := #in~n; 8345#L25 assume !(~n <= 0); 8295#L26 call #t~ret0 := fact(~n - 1);< 8303#$Ultimate##0 ~n := #in~n; 8345#L25 assume ~n <= 0;#res := 1; 8318#factFINAL assume true; 8294#factEXIT >#66#return; 8300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 8329#factFINAL assume true; 8322#factEXIT >#66#return; 8300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 8329#factFINAL assume true; 8322#factEXIT >#66#return; 8325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 8527#factFINAL assume true; 8505#factEXIT >#78#return; 8173#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 8174#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 8199#L42-2 [2023-02-17 09:41:05,713 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:05,714 INFO L85 PathProgramCache]: Analyzing trace with hash -1776267382, now seen corresponding path program 1 times [2023-02-17 09:41:05,714 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:05,714 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [481625124] [2023-02-17 09:41:05,714 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:05,714 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:05,719 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:05,719 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2032139844] [2023-02-17 09:41:05,719 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:05,719 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:05,719 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,720 INFO L229 MonitoredProcess]: Starting monitored process 46 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,744 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (46)] Waiting until timeout for monitored process [2023-02-17 09:41:05,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:05,764 INFO L263 TraceCheckSpWp]: Trace formula consists of 76 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-17 09:41:05,765 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:05,776 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 17 proven. 1 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2023-02-17 09:41:05,776 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:05,791 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 5 proven. 4 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2023-02-17 09:41:05,792 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:05,792 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [481625124] [2023-02-17 09:41:05,792 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:05,792 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2032139844] [2023-02-17 09:41:05,792 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2032139844] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:05,792 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:05,792 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 7 [2023-02-17 09:41:05,792 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [152284835] [2023-02-17 09:41:05,792 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:05,792 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:05,793 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:05,793 INFO L85 PathProgramCache]: Analyzing trace with hash -1560218684, now seen corresponding path program 1 times [2023-02-17 09:41:05,793 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:05,793 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [755229593] [2023-02-17 09:41:05,793 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:05,793 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:05,798 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:05,798 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1674604313] [2023-02-17 09:41:05,798 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:05,798 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:05,798 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,801 INFO L229 MonitoredProcess]: Starting monitored process 47 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,802 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (47)] Waiting until timeout for monitored process [2023-02-17 09:41:05,848 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:05,848 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:05,864 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:05,876 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:05,919 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:05,919 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:05,919 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:05,919 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:05,920 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:05,920 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,920 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:05,920 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:05,920 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration11_Loop [2023-02-17 09:41:05,920 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:05,920 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:05,926 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,927 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,928 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,929 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,929 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,930 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:05,945 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 36 [2023-02-17 09:41:05,980 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:05,981 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:05,981 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,981 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,984 INFO L229 MonitoredProcess]: Starting monitored process 48 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:05,985 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (48)] Waiting until timeout for monitored process [2023-02-17 09:41:05,986 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:05,986 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:05,993 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:05,993 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~ret10#1=0} Honda state: {ULTIMATE.start_main_#t~ret10#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:05,998 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (48)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:05,998 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:05,999 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:05,999 INFO L229 MonitoredProcess]: Starting monitored process 49 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,001 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (49)] Waiting until timeout for monitored process [2023-02-17 09:41:06,002 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:06,002 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:06,009 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:06,009 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:06,012 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (49)] Ended with exit code 0 [2023-02-17 09:41:06,012 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,013 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:06,013 INFO L229 MonitoredProcess]: Starting monitored process 50 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,015 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (50)] Waiting until timeout for monitored process [2023-02-17 09:41:06,016 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:06,016 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:06,023 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:06,023 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret1#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret1#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:06,028 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (50)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:06,028 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,029 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:06,030 INFO L229 MonitoredProcess]: Starting monitored process 51 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,031 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (51)] Waiting until timeout for monitored process [2023-02-17 09:41:06,033 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:06,033 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:06,048 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:06,049 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post8#1=0} Honda state: {ULTIMATE.start_main_#t~post8#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:06,055 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (51)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:06,055 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,055 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:06,057 INFO L229 MonitoredProcess]: Starting monitored process 52 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,064 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:06,064 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:06,073 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (52)] Waiting until timeout for monitored process [2023-02-17 09:41:06,078 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:06,078 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:06,080 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (52)] Ended with exit code 0 [2023-02-17 09:41:06,081 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,081 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:06,082 INFO L229 MonitoredProcess]: Starting monitored process 53 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,085 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (53)] Waiting until timeout for monitored process [2023-02-17 09:41:06,086 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:06,086 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:06,124 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (45)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:06,155 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (53)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:06,156 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,156 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:06,157 INFO L229 MonitoredProcess]: Starting monitored process 54 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,165 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:06,165 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:06,176 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (54)] Waiting until timeout for monitored process [2023-02-17 09:41:06,282 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:06,286 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (54)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:06,286 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:06,286 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:06,287 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:06,287 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:06,287 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:06,287 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,287 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:06,287 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:06,287 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration11_Loop [2023-02-17 09:41:06,287 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:06,287 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:06,291 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:06,295 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:06,296 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:06,297 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:06,298 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:06,298 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:06,303 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 36 [2023-02-17 09:41:06,329 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:06,330 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:06,330 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,330 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:06,331 INFO L229 MonitoredProcess]: Starting monitored process 55 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,334 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (55)] Waiting until timeout for monitored process [2023-02-17 09:41:06,335 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:06,342 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:06,342 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:06,343 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:06,343 INFO L204 nArgumentSynthesizer]: 32 loop disjuncts [2023-02-17 09:41:06,343 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:06,462 INFO L401 nArgumentSynthesizer]: We have 64 Motzkin's Theorem applications. [2023-02-17 09:41:06,462 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:06,595 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:06,638 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:06,638 INFO L444 ModelExtractionUtils]: 7 out of 10 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-17 09:41:06,638 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:06,638 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:06,640 INFO L229 MonitoredProcess]: Starting monitored process 56 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:06,642 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (56)] Waiting until timeout for monitored process [2023-02-17 09:41:06,643 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:06,643 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:06,644 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:06,644 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~k~0#1) = -2*ULTIMATE.start_main_~k~0#1 + 5 Supporting invariants [] [2023-02-17 09:41:06,652 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (55)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:06,652 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:06,663 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:06,691 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:06,692 INFO L263 TraceCheckSpWp]: Trace formula consists of 188 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-17 09:41:06,693 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:06,758 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:06,760 INFO L263 TraceCheckSpWp]: Trace formula consists of 377 conjuncts, 32 conjunts are in the unsatisfiable core [2023-02-17 09:41:06,762 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:06,870 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 0 proven. 93 refuted. 0 times theorem prover too weak. 81 trivial. 0 not checked. [2023-02-17 09:41:06,871 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 10 loop predicates [2023-02-17 09:41:06,871 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 528 states and 890 transitions. cyclomatic complexity: 380 Second operand has 12 states, 11 states have (on average 3.090909090909091) internal successors, (34), 12 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 6 states have return successors, (11), 7 states have call predecessors, (11), 6 states have call successors, (11) [2023-02-17 09:41:07,141 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 528 states and 890 transitions. cyclomatic complexity: 380. Second operand has 12 states, 11 states have (on average 3.090909090909091) internal successors, (34), 12 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 6 states have return successors, (11), 7 states have call predecessors, (11), 6 states have call successors, (11) Result 1083 states and 1767 transitions. Complement of second has 59 states. [2023-02-17 09:41:07,142 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 12 states 2 stem states 9 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:07,143 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 11 states have (on average 3.090909090909091) internal successors, (34), 12 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 6 states have return successors, (11), 7 states have call predecessors, (11), 6 states have call successors, (11) [2023-02-17 09:41:07,143 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 96 transitions. [2023-02-17 09:41:07,143 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 96 transitions. Stem has 30 letters. Loop has 56 letters. [2023-02-17 09:41:07,144 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:07,144 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 96 transitions. Stem has 86 letters. Loop has 56 letters. [2023-02-17 09:41:07,145 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:07,145 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 12 states and 96 transitions. Stem has 30 letters. Loop has 112 letters. [2023-02-17 09:41:07,146 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:07,146 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1083 states and 1767 transitions. [2023-02-17 09:41:07,159 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 123 [2023-02-17 09:41:07,169 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1083 states to 1057 states and 1734 transitions. [2023-02-17 09:41:07,169 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 357 [2023-02-17 09:41:07,170 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 362 [2023-02-17 09:41:07,170 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1057 states and 1734 transitions. [2023-02-17 09:41:07,170 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:07,170 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1057 states and 1734 transitions. [2023-02-17 09:41:07,171 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1057 states and 1734 transitions. [2023-02-17 09:41:07,201 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1057 to 922. [2023-02-17 09:41:07,202 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 922 states, 583 states have (on average 1.137221269296741) internal successors, (663), 588 states have internal predecessors, (663), 231 states have call successors, (243), 90 states have call predecessors, (243), 108 states have return successors, (556), 243 states have call predecessors, (556), 230 states have call successors, (556) [2023-02-17 09:41:07,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 922 states to 922 states and 1462 transitions. [2023-02-17 09:41:07,213 INFO L240 hiAutomatonCegarLoop]: Abstraction has 922 states and 1462 transitions. [2023-02-17 09:41:07,213 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:07,213 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2023-02-17 09:41:07,213 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2023-02-17 09:41:07,213 INFO L87 Difference]: Start difference. First operand 922 states and 1462 transitions. Second operand has 7 states, 6 states have (on average 3.5) internal successors, (21), 7 states have internal predecessors, (21), 3 states have call successors, (5), 2 states have call predecessors, (5), 3 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2023-02-17 09:41:07,305 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:07,305 INFO L93 Difference]: Finished difference Result 936 states and 1456 transitions. [2023-02-17 09:41:07,306 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 936 states and 1456 transitions. [2023-02-17 09:41:07,342 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 126 [2023-02-17 09:41:07,347 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (56)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,354 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 936 states to 936 states and 1456 transitions. [2023-02-17 09:41:07,355 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 329 [2023-02-17 09:41:07,356 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 329 [2023-02-17 09:41:07,356 INFO L73 IsDeterministic]: Start isDeterministic. Operand 936 states and 1456 transitions. [2023-02-17 09:41:07,356 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:07,356 INFO L218 hiAutomatonCegarLoop]: Abstraction has 936 states and 1456 transitions. [2023-02-17 09:41:07,357 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 936 states and 1456 transitions. [2023-02-17 09:41:07,377 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 936 to 882. [2023-02-17 09:41:07,378 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 882 states, 559 states have (on average 1.1395348837209303) internal successors, (637), 570 states have internal predecessors, (637), 219 states have call successors, (231), 84 states have call predecessors, (231), 104 states have return successors, (520), 227 states have call predecessors, (520), 218 states have call successors, (520) [2023-02-17 09:41:07,383 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 882 states to 882 states and 1388 transitions. [2023-02-17 09:41:07,383 INFO L240 hiAutomatonCegarLoop]: Abstraction has 882 states and 1388 transitions. [2023-02-17 09:41:07,384 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2023-02-17 09:41:07,385 INFO L428 stractBuchiCegarLoop]: Abstraction has 882 states and 1388 transitions. [2023-02-17 09:41:07,385 INFO L335 stractBuchiCegarLoop]: ======== Iteration 12 ============ [2023-02-17 09:41:07,385 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 882 states and 1388 transitions. [2023-02-17 09:41:07,390 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 120 [2023-02-17 09:41:07,390 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:07,390 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:07,392 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [6, 5, 4, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:07,392 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [1, 1, 1] [2023-02-17 09:41:07,393 INFO L748 eck$LassoCheckResult]: Stem: 12237#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 12174#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 12175#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 12199#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 12187#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 12188#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 12455#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 12167#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 12168#$Ultimate##0 ~n := #in~n; 12674#L25 assume ~n <= 0;#res := 1; 12672#factFINAL assume true; 12671#factEXIT >#68#return; 12181#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 12224#$Ultimate##0 ~n := #in~n; 12642#L25 assume ~n <= 0;#res := 1; 12643#factFINAL assume true; 12565#factEXIT >#70#return; 12182#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 12224#$Ultimate##0 ~n := #in~n; 12642#L25 assume ~n <= 0;#res := 1; 12643#factFINAL assume true; 12565#factEXIT >#72#return; 12566#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 12592#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 12589#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 12588#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 12573#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 12557#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 12572#$Ultimate##0 ~n := #in~n; 12578#L25 assume !(~n <= 0); 12579#L26 call #t~ret0 := fact(~n - 1);< 12616#$Ultimate##0 ~n := #in~n; 12701#L25 assume ~n <= 0;#res := 1; 12698#factFINAL assume true; 12650#factEXIT >#66#return; 12647#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 12646#factFINAL assume true; 12633#factEXIT >#74#return; 12481#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 12549#$Ultimate##0 ~n := #in~n; 12509#L25 assume !(~n <= 0); 12468#L26 call #t~ret0 := fact(~n - 1);< 12484#$Ultimate##0 [2023-02-17 09:41:07,393 INFO L750 eck$LassoCheckResult]: Loop: 12484#$Ultimate##0 ~n := #in~n; 12492#L25 assume !(~n <= 0); 12472#L26 call #t~ret0 := fact(~n - 1);< 12484#$Ultimate##0 [2023-02-17 09:41:07,394 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:07,394 INFO L85 PathProgramCache]: Analyzing trace with hash 1705579033, now seen corresponding path program 1 times [2023-02-17 09:41:07,394 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:07,394 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1090824466] [2023-02-17 09:41:07,394 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:07,395 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:07,402 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:07,402 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1737846123] [2023-02-17 09:41:07,402 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:07,402 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:07,403 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,405 INFO L229 MonitoredProcess]: Starting monitored process 57 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,428 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (57)] Waiting until timeout for monitored process [2023-02-17 09:41:07,454 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:07,455 INFO L263 TraceCheckSpWp]: Trace formula consists of 111 conjuncts, 6 conjunts are in the unsatisfiable core [2023-02-17 09:41:07,456 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:07,467 INFO L134 CoverageAnalysis]: Checked inductivity of 53 backedges. 11 proven. 0 refuted. 0 times theorem prover too weak. 42 trivial. 0 not checked. [2023-02-17 09:41:07,467 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-17 09:41:07,467 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:07,468 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1090824466] [2023-02-17 09:41:07,468 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:07,468 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1737846123] [2023-02-17 09:41:07,468 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1737846123] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-17 09:41:07,468 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-17 09:41:07,468 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2023-02-17 09:41:07,469 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [915810396] [2023-02-17 09:41:07,469 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-17 09:41:07,469 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:07,469 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:07,469 INFO L85 PathProgramCache]: Analyzing trace with hash 29980, now seen corresponding path program 2 times [2023-02-17 09:41:07,470 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:07,470 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [407746967] [2023-02-17 09:41:07,470 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:07,470 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:07,472 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:07,472 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:07,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:07,474 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:07,476 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:07,476 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:07,476 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:07,476 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:07,476 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:07,476 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,476 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:07,476 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:07,477 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration12_Loop [2023-02-17 09:41:07,477 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:07,477 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:07,477 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,478 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,479 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,480 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,481 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:07,482 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:07,482 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,482 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,483 INFO L229 MonitoredProcess]: Starting monitored process 58 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,486 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (58)] Waiting until timeout for monitored process [2023-02-17 09:41:07,487 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:07,487 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:07,517 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:07,517 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {fact_~n=0} Honda state: {fact_~n=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:07,521 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (58)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,521 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,521 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,522 INFO L229 MonitoredProcess]: Starting monitored process 59 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,529 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:07,529 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:07,538 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (59)] Waiting until timeout for monitored process [2023-02-17 09:41:07,549 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:07,549 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {fact_#t~ret0=0} Honda state: {fact_#t~ret0=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:07,557 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (59)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,557 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,557 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,559 INFO L229 MonitoredProcess]: Starting monitored process 60 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,561 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (60)] Waiting until timeout for monitored process [2023-02-17 09:41:07,562 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:07,562 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:07,584 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:07,584 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {fact_#res=0} Honda state: {fact_#res=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:07,588 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (60)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,588 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,589 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,590 INFO L229 MonitoredProcess]: Starting monitored process 61 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,592 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (61)] Waiting until timeout for monitored process [2023-02-17 09:41:07,593 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:07,593 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:07,620 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (61)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,620 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,621 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,622 INFO L229 MonitoredProcess]: Starting monitored process 62 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,625 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:07,625 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:07,641 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (62)] Waiting until timeout for monitored process [2023-02-17 09:41:07,652 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:07,656 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (62)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,656 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:07,656 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:07,656 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:07,656 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:07,656 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:07,656 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,656 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:07,656 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:07,656 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration12_Loop [2023-02-17 09:41:07,656 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:07,657 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:07,657 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,658 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,659 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,659 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:07,661 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:07,661 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:07,661 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,661 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,663 INFO L229 MonitoredProcess]: Starting monitored process 63 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,669 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:07,676 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:07,677 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:07,677 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:07,677 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:07,677 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:07,677 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:07,677 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:07,679 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (63)] Waiting until timeout for monitored process [2023-02-17 09:41:07,696 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:07,700 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (63)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,700 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,701 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,702 INFO L229 MonitoredProcess]: Starting monitored process 64 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,704 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (64)] Waiting until timeout for monitored process [2023-02-17 09:41:07,706 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:07,713 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:07,713 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:07,713 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:07,713 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:07,713 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:07,714 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:07,714 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:07,728 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:07,734 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (64)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,734 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,734 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,736 INFO L229 MonitoredProcess]: Starting monitored process 65 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,741 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:07,748 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:07,749 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:07,749 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:07,749 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:07,749 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:07,749 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:07,749 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:07,751 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (65)] Waiting until timeout for monitored process [2023-02-17 09:41:07,764 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:07,768 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (65)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,768 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,768 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,770 INFO L229 MonitoredProcess]: Starting monitored process 66 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,777 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:07,784 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:07,784 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:07,784 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:07,784 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:07,784 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:07,785 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:07,785 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:07,787 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (66)] Waiting until timeout for monitored process [2023-02-17 09:41:07,796 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:07,803 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:07,803 INFO L444 ModelExtractionUtils]: 0 out of 3 variables were initially zero. Simplification set additionally 1 variables to zero. [2023-02-17 09:41:07,803 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:07,803 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:07,805 INFO L229 MonitoredProcess]: Starting monitored process 67 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:07,806 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (67)] Waiting until timeout for monitored process [2023-02-17 09:41:07,808 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:07,808 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:07,808 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:07,808 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(fact_#in~n) = 1*fact_#in~n Supporting invariants [] [2023-02-17 09:41:07,811 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (66)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:07,811 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:07,823 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:07,894 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:07,896 INFO L263 TraceCheckSpWp]: Trace formula consists of 307 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:41:07,897 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:07,925 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:07,926 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:07,926 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:07,936 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2023-02-17 09:41:07,937 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 3 loop predicates [2023-02-17 09:41:07,937 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 882 states and 1388 transitions. cyclomatic complexity: 536 Second operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2023-02-17 09:41:08,004 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 882 states and 1388 transitions. cyclomatic complexity: 536. Second operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) Result 954 states and 1480 transitions. Complement of second has 13 states. [2023-02-17 09:41:08,005 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 5 states 2 stem states 2 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:08,006 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2023-02-17 09:41:08,007 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 32 transitions. [2023-02-17 09:41:08,007 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 32 transitions. Stem has 42 letters. Loop has 3 letters. [2023-02-17 09:41:08,007 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:08,007 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-17 09:41:08,015 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:08,057 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:08,060 INFO L263 TraceCheckSpWp]: Trace formula consists of 307 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:41:08,061 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:08,086 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:08,086 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:08,087 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:08,096 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2023-02-17 09:41:08,098 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and with honda bouncer for loop.2 stem predicates 3 loop predicates [2023-02-17 09:41:08,098 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 882 states and 1388 transitions. cyclomatic complexity: 536 Second operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2023-02-17 09:41:08,157 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 882 states and 1388 transitions. cyclomatic complexity: 536. Second operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) Result 954 states and 1480 transitions. Complement of second has 13 states. [2023-02-17 09:41:08,158 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 5 states 2 stem states 2 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:08,158 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2023-02-17 09:41:08,159 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 32 transitions. [2023-02-17 09:41:08,159 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 32 transitions. Stem has 42 letters. Loop has 3 letters. [2023-02-17 09:41:08,159 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:08,159 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-17 09:41:08,167 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:08,209 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:08,211 INFO L263 TraceCheckSpWp]: Trace formula consists of 307 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:41:08,212 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:08,238 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:08,239 INFO L263 TraceCheckSpWp]: Trace formula consists of 37 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:08,239 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:08,249 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2023-02-17 09:41:08,249 INFO L141 lantAutomatonBouncer]: Defining Buchi interpolant automaton with scrooge nondeterminism in stemwith honda bouncer for stem and without honda bouncer for loop.2 stem predicates 3 loop predicates [2023-02-17 09:41:08,250 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 882 states and 1388 transitions. cyclomatic complexity: 536 Second operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2023-02-17 09:41:08,325 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (67)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:08,341 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 882 states and 1388 transitions. cyclomatic complexity: 536. Second operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) Result 1068 states and 1614 transitions. Complement of second has 16 states. [2023-02-17 09:41:08,341 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 5 states 2 stem states 2 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:08,342 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 4 states have (on average 5.0) internal successors, (20), 4 states have internal predecessors, (20), 3 states have call successors, (8), 3 states have call predecessors, (8), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2023-02-17 09:41:08,342 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 40 transitions. [2023-02-17 09:41:08,342 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 40 transitions. Stem has 42 letters. Loop has 3 letters. [2023-02-17 09:41:08,346 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:08,346 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 40 transitions. Stem has 45 letters. Loop has 3 letters. [2023-02-17 09:41:08,346 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:08,346 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 5 states and 40 transitions. Stem has 42 letters. Loop has 6 letters. [2023-02-17 09:41:08,347 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:08,347 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1068 states and 1614 transitions. [2023-02-17 09:41:08,356 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 114 [2023-02-17 09:41:08,368 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1068 states to 935 states and 1479 transitions. [2023-02-17 09:41:08,368 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 301 [2023-02-17 09:41:08,369 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 309 [2023-02-17 09:41:08,369 INFO L73 IsDeterministic]: Start isDeterministic. Operand 935 states and 1479 transitions. [2023-02-17 09:41:08,369 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:08,370 INFO L218 hiAutomatonCegarLoop]: Abstraction has 935 states and 1479 transitions. [2023-02-17 09:41:08,370 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 935 states and 1479 transitions. [2023-02-17 09:41:08,394 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 935 to 867. [2023-02-17 09:41:08,396 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 867 states, 557 states have (on average 1.1400359066427288) internal successors, (635), 560 states have internal predecessors, (635), 206 states have call successors, (218), 82 states have call predecessors, (218), 104 states have return successors, (476), 224 states have call predecessors, (476), 206 states have call successors, (476) [2023-02-17 09:41:08,399 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 867 states to 867 states and 1329 transitions. [2023-02-17 09:41:08,399 INFO L240 hiAutomatonCegarLoop]: Abstraction has 867 states and 1329 transitions. [2023-02-17 09:41:08,399 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:08,400 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2023-02-17 09:41:08,400 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2023-02-17 09:41:08,400 INFO L87 Difference]: Start difference. First operand 867 states and 1329 transitions. Second operand has 6 states, 4 states have (on average 4.5) internal successors, (18), 5 states have internal predecessors, (18), 4 states have call successors, (7), 3 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2023-02-17 09:41:08,462 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:08,462 INFO L93 Difference]: Finished difference Result 819 states and 1177 transitions. [2023-02-17 09:41:08,462 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 819 states and 1177 transitions. [2023-02-17 09:41:08,469 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 106 [2023-02-17 09:41:08,475 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 819 states to 815 states and 1173 transitions. [2023-02-17 09:41:08,475 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 295 [2023-02-17 09:41:08,476 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 295 [2023-02-17 09:41:08,476 INFO L73 IsDeterministic]: Start isDeterministic. Operand 815 states and 1173 transitions. [2023-02-17 09:41:08,476 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:08,476 INFO L218 hiAutomatonCegarLoop]: Abstraction has 815 states and 1173 transitions. [2023-02-17 09:41:08,477 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 815 states and 1173 transitions. [2023-02-17 09:41:08,491 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 815 to 797. [2023-02-17 09:41:08,493 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 797 states, 519 states have (on average 1.1290944123314066) internal successors, (586), 524 states have internal predecessors, (586), 176 states have call successors, (184), 82 states have call predecessors, (184), 102 states have return successors, (374), 190 states have call predecessors, (374), 176 states have call successors, (374) [2023-02-17 09:41:08,495 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 797 states to 797 states and 1144 transitions. [2023-02-17 09:41:08,495 INFO L240 hiAutomatonCegarLoop]: Abstraction has 797 states and 1144 transitions. [2023-02-17 09:41:08,497 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2023-02-17 09:41:08,497 INFO L428 stractBuchiCegarLoop]: Abstraction has 797 states and 1144 transitions. [2023-02-17 09:41:08,497 INFO L335 stractBuchiCegarLoop]: ======== Iteration 13 ============ [2023-02-17 09:41:08,498 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 797 states and 1144 transitions. [2023-02-17 09:41:08,501 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 106 [2023-02-17 09:41:08,501 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:08,501 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:08,502 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:08,502 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:08,502 INFO L748 eck$LassoCheckResult]: Stem: 18385#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 18324#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 18325#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 18348#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 18336#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 18337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 18565#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 18318#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 18319#$Ultimate##0 ~n := #in~n; 18598#L25 assume ~n <= 0;#res := 1; 18596#factFINAL assume true; 18589#factEXIT >#68#return; 18369#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 18370#$Ultimate##0 ~n := #in~n; 18571#L25 assume ~n <= 0;#res := 1; 18569#factFINAL assume true; 18545#factEXIT >#70#return; 18331#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 18668#$Ultimate##0 ~n := #in~n; 18670#L25 assume !(~n <= 0); 18330#L26 call #t~ret0 := fact(~n - 1);< 18332#$Ultimate##0 ~n := #in~n; 18374#L25 assume ~n <= 0;#res := 1; 18952#factFINAL assume true; 18762#factEXIT >#66#return; 18760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18758#factFINAL assume true; 18757#factEXIT >#72#return; 18745#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 18741#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 18548#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 18495#L42-3 [2023-02-17 09:41:08,503 INFO L750 eck$LassoCheckResult]: Loop: 18495#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 18496#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 18305#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 18306#$Ultimate##0 ~n := #in~n; 18634#L25 assume !(~n <= 0); 18607#L26 call #t~ret0 := fact(~n - 1);< 18632#$Ultimate##0 ~n := #in~n; 18633#L25 assume !(~n <= 0); 18606#L26 call #t~ret0 := fact(~n - 1);< 18615#$Ultimate##0 ~n := #in~n; 18633#L25 assume !(~n <= 0); 18606#L26 call #t~ret0 := fact(~n - 1);< 18615#$Ultimate##0 ~n := #in~n; 18633#L25 assume !(~n <= 0); 18606#L26 call #t~ret0 := fact(~n - 1);< 18615#$Ultimate##0 ~n := #in~n; 18665#L25 assume ~n <= 0;#res := 1; 18663#factFINAL assume true; 18650#factEXIT >#66#return; 18645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18643#factFINAL assume true; 18641#factEXIT >#66#return; 18637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18631#factFINAL assume true; 18627#factEXIT >#66#return; 18609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18614#factFINAL assume true; 18602#factEXIT >#66#return; 18601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18568#factFINAL assume true; 18490#factEXIT >#74#return; 18378#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 18379#$Ultimate##0 ~n := #in~n; 18535#L25 assume ~n <= 0;#res := 1; 18530#factFINAL assume true; 18523#factEXIT >#76#return; 18491#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 18306#$Ultimate##0 ~n := #in~n; 18634#L25 assume !(~n <= 0); 18607#L26 call #t~ret0 := fact(~n - 1);< 18632#$Ultimate##0 ~n := #in~n; 18633#L25 assume !(~n <= 0); 18606#L26 call #t~ret0 := fact(~n - 1);< 18615#$Ultimate##0 ~n := #in~n; 18665#L25 assume ~n <= 0;#res := 1; 18663#factFINAL assume true; 18650#factEXIT >#66#return; 18645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18643#factFINAL assume true; 18641#factEXIT >#66#return; 18628#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 18695#factFINAL assume true; 18691#factEXIT >#78#return; 18493#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 18685#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 18497#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 18495#L42-3 [2023-02-17 09:41:08,503 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:08,503 INFO L85 PathProgramCache]: Analyzing trace with hash 1970898717, now seen corresponding path program 1 times [2023-02-17 09:41:08,503 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:08,503 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1999340819] [2023-02-17 09:41:08,504 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:08,504 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:08,508 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:08,508 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [830288957] [2023-02-17 09:41:08,508 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:08,509 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:08,509 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:08,510 INFO L229 MonitoredProcess]: Starting monitored process 68 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:08,532 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (68)] Waiting until timeout for monitored process [2023-02-17 09:41:08,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:08,551 INFO L263 TraceCheckSpWp]: Trace formula consists of 78 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-17 09:41:08,551 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:08,565 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 8 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2023-02-17 09:41:08,566 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:08,590 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 8 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2023-02-17 09:41:08,591 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:08,591 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1999340819] [2023-02-17 09:41:08,591 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:08,591 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [830288957] [2023-02-17 09:41:08,591 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [830288957] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:08,591 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:08,591 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 10 [2023-02-17 09:41:08,592 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [383816148] [2023-02-17 09:41:08,592 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:08,592 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:08,592 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:08,592 INFO L85 PathProgramCache]: Analyzing trace with hash 1208707694, now seen corresponding path program 2 times [2023-02-17 09:41:08,593 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:08,593 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1361948834] [2023-02-17 09:41:08,593 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:08,593 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:08,597 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:08,597 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1637907565] [2023-02-17 09:41:08,598 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:08,598 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:08,598 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:08,601 INFO L229 MonitoredProcess]: Starting monitored process 69 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:08,623 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (69)] Waiting until timeout for monitored process [2023-02-17 09:41:08,648 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:08,649 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:08,649 INFO L263 TraceCheckSpWp]: Trace formula consists of 125 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:41:08,650 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:08,705 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 38 proven. 82 refuted. 0 times theorem prover too weak. 54 trivial. 0 not checked. [2023-02-17 09:41:08,705 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:08,875 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 37 proven. 95 refuted. 0 times theorem prover too weak. 42 trivial. 0 not checked. [2023-02-17 09:41:08,876 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:08,876 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1361948834] [2023-02-17 09:41:08,876 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:08,876 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1637907565] [2023-02-17 09:41:08,876 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1637907565] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:08,876 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:08,877 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 17] total 22 [2023-02-17 09:41:08,877 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [325371014] [2023-02-17 09:41:08,877 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:08,877 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:08,877 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:08,878 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2023-02-17 09:41:08,878 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=68, Unknown=0, NotChecked=0, Total=90 [2023-02-17 09:41:08,878 INFO L87 Difference]: Start difference. First operand 797 states and 1144 transitions. cyclomatic complexity: 369 Second operand has 10 states, 8 states have (on average 2.75) internal successors, (22), 10 states have internal predecessors, (22), 3 states have call successors, (7), 1 states have call predecessors, (7), 2 states have return successors, (7), 4 states have call predecessors, (7), 3 states have call successors, (7) [2023-02-17 09:41:09,035 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:09,035 INFO L93 Difference]: Finished difference Result 888 states and 1291 transitions. [2023-02-17 09:41:09,035 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 888 states and 1291 transitions. [2023-02-17 09:41:09,042 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 137 [2023-02-17 09:41:09,068 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 888 states to 848 states and 1237 transitions. [2023-02-17 09:41:09,069 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 320 [2023-02-17 09:41:09,069 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 320 [2023-02-17 09:41:09,069 INFO L73 IsDeterministic]: Start isDeterministic. Operand 848 states and 1237 transitions. [2023-02-17 09:41:09,070 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:09,070 INFO L218 hiAutomatonCegarLoop]: Abstraction has 848 states and 1237 transitions. [2023-02-17 09:41:09,070 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 848 states and 1237 transitions. [2023-02-17 09:41:09,087 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 848 to 821. [2023-02-17 09:41:09,088 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 821 states, 531 states have (on average 1.1261770244821092) internal successors, (598), 532 states have internal predecessors, (598), 196 states have call successors, (204), 78 states have call predecessors, (204), 94 states have return successors, (394), 210 states have call predecessors, (394), 196 states have call successors, (394) [2023-02-17 09:41:09,091 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 821 states to 821 states and 1196 transitions. [2023-02-17 09:41:09,091 INFO L240 hiAutomatonCegarLoop]: Abstraction has 821 states and 1196 transitions. [2023-02-17 09:41:09,092 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-17 09:41:09,092 INFO L428 stractBuchiCegarLoop]: Abstraction has 821 states and 1196 transitions. [2023-02-17 09:41:09,092 INFO L335 stractBuchiCegarLoop]: ======== Iteration 14 ============ [2023-02-17 09:41:09,092 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 821 states and 1196 transitions. [2023-02-17 09:41:09,097 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 130 [2023-02-17 09:41:09,097 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:09,097 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:09,098 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [7, 7, 6, 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, 1, 1] [2023-02-17 09:41:09,098 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:09,098 INFO L748 eck$LassoCheckResult]: Stem: 20658#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 20564#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 20565#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 20591#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 20578#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 20579#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 20894#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 20557#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 20558#$Ultimate##0 ~n := #in~n; 21044#L25 assume ~n <= 0;#res := 1; 21041#factFINAL assume true; 20982#factEXIT >#68#return; 20650#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 20651#$Ultimate##0 ~n := #in~n; 20987#L25 assume ~n <= 0;#res := 1; 20985#factFINAL assume true; 20978#factEXIT >#70#return; 20544#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 20545#$Ultimate##0 ~n := #in~n; 21056#L25 assume ~n <= 0;#res := 1; 21053#factFINAL assume true; 21050#factEXIT >#72#return; 20892#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 20893#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 20938#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 20973#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 20970#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 20956#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 20957#$Ultimate##0 ~n := #in~n; 21057#L25 assume ~n <= 0;#res := 1; 21054#factFINAL assume true; 21051#factEXIT >#74#return; 20933#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 20936#$Ultimate##0 ~n := #in~n; 21055#L25 assume ~n <= 0;#res := 1; 21052#factFINAL assume true; 20932#factEXIT >#76#return; 20890#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 21058#$Ultimate##0 ~n := #in~n; 20914#L25 assume !(~n <= 0); 20899#L26 call #t~ret0 := fact(~n - 1);< 20905#$Ultimate##0 ~n := #in~n; 20931#L25 assume ~n <= 0;#res := 1; 20930#factFINAL assume true; 20912#factEXIT >#66#return; 20903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20908#factFINAL assume true; 20889#factEXIT >#78#return; 20877#L30-8 [2023-02-17 09:41:09,099 INFO L750 eck$LassoCheckResult]: Loop: 20877#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 20886#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 20883#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 20881#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 20879#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 20540#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 20541#$Ultimate##0 ~n := #in~n; 20929#L25 assume !(~n <= 0); 20901#L26 call #t~ret0 := fact(~n - 1);< 20573#$Ultimate##0 ~n := #in~n; 20919#L25 assume !(~n <= 0); 20900#L26 call #t~ret0 := fact(~n - 1);< 20910#$Ultimate##0 ~n := #in~n; 20919#L25 assume !(~n <= 0); 20900#L26 call #t~ret0 := fact(~n - 1);< 20910#$Ultimate##0 ~n := #in~n; 20919#L25 assume !(~n <= 0); 20900#L26 call #t~ret0 := fact(~n - 1);< 20910#$Ultimate##0 ~n := #in~n; 20922#L25 assume ~n <= 0;#res := 1; 20925#factFINAL assume true; 20924#factEXIT >#66#return; 20923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20920#factFINAL assume true; 20917#factEXIT >#66#return; 20918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20983#factFINAL assume true; 20913#factEXIT >#66#return; 20904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20909#factFINAL assume true; 20898#factEXIT >#66#return; 20895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20878#factFINAL assume true; 20874#factEXIT >#74#return; 20654#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 20655#$Ultimate##0 ~n := #in~n; 20906#L25 assume ~n <= 0;#res := 1; 20896#factFINAL assume true; 20880#factEXIT >#76#return; 20876#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 20541#$Ultimate##0 ~n := #in~n; 20929#L25 assume !(~n <= 0); 20901#L26 call #t~ret0 := fact(~n - 1);< 20573#$Ultimate##0 ~n := #in~n; 20919#L25 assume !(~n <= 0); 20900#L26 call #t~ret0 := fact(~n - 1);< 20910#$Ultimate##0 ~n := #in~n; 20922#L25 assume ~n <= 0;#res := 1; 20925#factFINAL assume true; 20924#factEXIT >#66#return; 20923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20920#factFINAL assume true; 20917#factEXIT >#66#return; 20907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 20897#factFINAL assume true; 20888#factEXIT >#78#return; 20877#L30-8 [2023-02-17 09:41:09,100 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:09,100 INFO L85 PathProgramCache]: Analyzing trace with hash 1440088363, now seen corresponding path program 1 times [2023-02-17 09:41:09,100 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:09,100 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2137398362] [2023-02-17 09:41:09,100 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:09,100 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:09,110 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:09,110 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2100959005] [2023-02-17 09:41:09,110 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:09,110 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:09,110 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,117 INFO L229 MonitoredProcess]: Starting monitored process 70 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,121 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (70)] Waiting until timeout for monitored process [2023-02-17 09:41:09,186 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:09,186 INFO L263 TraceCheckSpWp]: Trace formula consists of 124 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:09,187 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:09,200 INFO L134 CoverageAnalysis]: Checked inductivity of 86 backedges. 59 proven. 0 refuted. 0 times theorem prover too weak. 27 trivial. 0 not checked. [2023-02-17 09:41:09,200 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2023-02-17 09:41:09,200 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:09,201 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2137398362] [2023-02-17 09:41:09,201 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:09,201 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2100959005] [2023-02-17 09:41:09,201 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2100959005] provided 1 perfect and 0 imperfect interpolant sequences [2023-02-17 09:41:09,201 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2023-02-17 09:41:09,201 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2023-02-17 09:41:09,201 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1202364830] [2023-02-17 09:41:09,202 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2023-02-17 09:41:09,202 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:09,202 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:09,202 INFO L85 PathProgramCache]: Analyzing trace with hash 1158367668, now seen corresponding path program 3 times [2023-02-17 09:41:09,202 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:09,203 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [413748319] [2023-02-17 09:41:09,203 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:09,203 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:09,206 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:09,206 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1561260180] [2023-02-17 09:41:09,207 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:09,207 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:09,207 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,212 INFO L229 MonitoredProcess]: Starting monitored process 71 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,236 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (71)] Waiting until timeout for monitored process [2023-02-17 09:41:09,274 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2023-02-17 09:41:09,274 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:09,275 INFO L263 TraceCheckSpWp]: Trace formula consists of 110 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:41:09,276 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:09,316 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 52 proven. 70 refuted. 0 times theorem prover too weak. 52 trivial. 0 not checked. [2023-02-17 09:41:09,316 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:09,447 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 52 proven. 80 refuted. 0 times theorem prover too weak. 42 trivial. 0 not checked. [2023-02-17 09:41:09,447 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:09,447 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [413748319] [2023-02-17 09:41:09,447 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:09,447 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1561260180] [2023-02-17 09:41:09,448 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1561260180] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:09,448 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:09,448 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 15] total 18 [2023-02-17 09:41:09,448 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [586424535] [2023-02-17 09:41:09,448 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:09,448 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:09,449 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:09,449 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2023-02-17 09:41:09,449 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2023-02-17 09:41:09,449 INFO L87 Difference]: Start difference. First operand 821 states and 1196 transitions. cyclomatic complexity: 397 Second operand has 7 states, 6 states have (on average 3.8333333333333335) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (7), 2 states have call predecessors, (7), 3 states have call successors, (7) [2023-02-17 09:41:09,558 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:09,558 INFO L93 Difference]: Finished difference Result 697 states and 970 transitions. [2023-02-17 09:41:09,559 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 697 states and 970 transitions. [2023-02-17 09:41:09,563 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 112 [2023-02-17 09:41:09,568 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 697 states to 663 states and 936 transitions. [2023-02-17 09:41:09,568 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 266 [2023-02-17 09:41:09,569 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 266 [2023-02-17 09:41:09,569 INFO L73 IsDeterministic]: Start isDeterministic. Operand 663 states and 936 transitions. [2023-02-17 09:41:09,569 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:09,569 INFO L218 hiAutomatonCegarLoop]: Abstraction has 663 states and 936 transitions. [2023-02-17 09:41:09,570 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 663 states and 936 transitions. [2023-02-17 09:41:09,580 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 663 to 635. [2023-02-17 09:41:09,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 635 states, 415 states have (on average 1.1132530120481927) internal successors, (462), 418 states have internal predecessors, (462), 148 states have call successors, (150), 56 states have call predecessors, (150), 72 states have return successors, (284), 160 states have call predecessors, (284), 148 states have call successors, (284) [2023-02-17 09:41:09,584 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 635 states to 635 states and 896 transitions. [2023-02-17 09:41:09,584 INFO L240 hiAutomatonCegarLoop]: Abstraction has 635 states and 896 transitions. [2023-02-17 09:41:09,584 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2023-02-17 09:41:09,585 INFO L428 stractBuchiCegarLoop]: Abstraction has 635 states and 896 transitions. [2023-02-17 09:41:09,585 INFO L335 stractBuchiCegarLoop]: ======== Iteration 15 ============ [2023-02-17 09:41:09,585 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 635 states and 896 transitions. [2023-02-17 09:41:09,588 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 107 [2023-02-17 09:41:09,588 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:09,588 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:09,589 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [9, 9, 6, 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] [2023-02-17 09:41:09,589 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [11, 11, 8, 8, 8, 8, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:09,589 INFO L748 eck$LassoCheckResult]: Stem: 22644#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 22590#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 22591#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 22613#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 22600#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 22601#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 22901#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 22571#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 22576#$Ultimate##0 ~n := #in~n; 22630#L25 assume ~n <= 0;#res := 1; 22631#factFINAL assume true; 22570#factEXIT >#68#return; 22572#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 22633#$Ultimate##0 ~n := #in~n; 22910#L25 assume ~n <= 0;#res := 1; 22909#factFINAL assume true; 22908#factEXIT >#70#return; 22875#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 22876#$Ultimate##0 ~n := #in~n; 22905#L25 assume ~n <= 0;#res := 1; 22902#factFINAL assume true; 22874#factEXIT >#72#return; 22873#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 22872#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 22868#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 22643#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 22963#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 22897#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 22899#$Ultimate##0 ~n := #in~n; 22936#L25 assume !(~n <= 0); 22929#L26 call #t~ret0 := fact(~n - 1);< 22934#$Ultimate##0 ~n := #in~n; 22960#L25 assume ~n <= 0;#res := 1; 22958#factFINAL assume true; 22941#factEXIT >#66#return; 22918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22915#factFINAL assume true; 22896#factEXIT >#74#return; 22893#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 22895#$Ultimate##0 ~n := #in~n; 22917#L25 assume ~n <= 0;#res := 1; 22914#factFINAL assume true; 22892#factEXIT >#76#return; 22645#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 22646#$Ultimate##0 ~n := #in~n; 22890#L25 assume !(~n <= 0); 22884#L26 call #t~ret0 := fact(~n - 1);< 22888#$Ultimate##0 ~n := #in~n; 22906#L25 assume !(~n <= 0); 22883#L26 call #t~ret0 := fact(~n - 1);< 22904#$Ultimate##0 ~n := #in~n; 22907#L25 assume ~n <= 0;#res := 1; 22938#factFINAL assume true; 22937#factEXIT >#66#return; 22935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22927#factFINAL assume true; 22916#factEXIT >#66#return; 22880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22879#factFINAL assume true; 22878#factEXIT >#78#return; 22860#L30-8 [2023-02-17 09:41:09,589 INFO L750 eck$LassoCheckResult]: Loop: 22860#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 22870#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 22871#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 22953#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 22864#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 22858#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 22862#$Ultimate##0 ~n := #in~n; 22900#L25 assume !(~n <= 0); 22885#L26 call #t~ret0 := fact(~n - 1);< 22888#$Ultimate##0 ~n := #in~n; 22906#L25 assume !(~n <= 0); 22883#L26 call #t~ret0 := fact(~n - 1);< 22904#$Ultimate##0 ~n := #in~n; 22906#L25 assume !(~n <= 0); 22883#L26 call #t~ret0 := fact(~n - 1);< 22904#$Ultimate##0 ~n := #in~n; 22906#L25 assume !(~n <= 0); 22883#L26 call #t~ret0 := fact(~n - 1);< 22904#$Ultimate##0 ~n := #in~n; 22907#L25 assume ~n <= 0;#res := 1; 22938#factFINAL assume true; 22937#factEXIT >#66#return; 22935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22927#factFINAL assume true; 22916#factEXIT >#66#return; 22913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22912#factFINAL assume true; 22911#factEXIT >#66#return; 22887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22903#factFINAL assume true; 22882#factEXIT >#66#return; 22886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22861#factFINAL assume true; 22857#factEXIT >#74#return; 22638#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 22639#$Ultimate##0 ~n := #in~n; 22869#L25 assume ~n <= 0;#res := 1; 22867#factFINAL assume true; 22863#factEXIT >#76#return; 22859#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 22862#$Ultimate##0 ~n := #in~n; 22900#L25 assume !(~n <= 0); 22885#L26 call #t~ret0 := fact(~n - 1);< 22888#$Ultimate##0 ~n := #in~n; 22906#L25 assume !(~n <= 0); 22883#L26 call #t~ret0 := fact(~n - 1);< 22904#$Ultimate##0 ~n := #in~n; 22906#L25 assume !(~n <= 0); 22883#L26 call #t~ret0 := fact(~n - 1);< 22904#$Ultimate##0 ~n := #in~n; 22906#L25 assume !(~n <= 0); 22883#L26 call #t~ret0 := fact(~n - 1);< 22904#$Ultimate##0 ~n := #in~n; 22907#L25 assume ~n <= 0;#res := 1; 22938#factFINAL assume true; 22937#factEXIT >#66#return; 22935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22927#factFINAL assume true; 22916#factEXIT >#66#return; 22913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22912#factFINAL assume true; 22911#factEXIT >#66#return; 22887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22903#factFINAL assume true; 22882#factEXIT >#66#return; 22886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 22861#factFINAL assume true; 22857#factEXIT >#78#return; 22860#L30-8 [2023-02-17 09:41:09,590 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:09,590 INFO L85 PathProgramCache]: Analyzing trace with hash -876905877, now seen corresponding path program 2 times [2023-02-17 09:41:09,590 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:09,590 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [668982505] [2023-02-17 09:41:09,590 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:09,590 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:09,595 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:09,595 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1709338506] [2023-02-17 09:41:09,595 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:09,595 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:09,596 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,601 INFO L229 MonitoredProcess]: Starting monitored process 72 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,612 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (72)] Waiting until timeout for monitored process [2023-02-17 09:41:09,652 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:09,652 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:09,653 INFO L263 TraceCheckSpWp]: Trace formula consists of 148 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-17 09:41:09,655 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:09,677 INFO L134 CoverageAnalysis]: Checked inductivity of 152 backedges. 47 proven. 5 refuted. 0 times theorem prover too weak. 100 trivial. 0 not checked. [2023-02-17 09:41:09,677 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:09,732 INFO L134 CoverageAnalysis]: Checked inductivity of 152 backedges. 47 proven. 6 refuted. 0 times theorem prover too weak. 99 trivial. 0 not checked. [2023-02-17 09:41:09,733 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:09,733 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [668982505] [2023-02-17 09:41:09,733 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:09,733 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1709338506] [2023-02-17 09:41:09,733 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1709338506] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:09,733 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:09,734 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 13 [2023-02-17 09:41:09,734 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1334583764] [2023-02-17 09:41:09,734 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:09,734 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:09,735 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:09,735 INFO L85 PathProgramCache]: Analyzing trace with hash 857296756, now seen corresponding path program 4 times [2023-02-17 09:41:09,735 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:09,735 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1605755413] [2023-02-17 09:41:09,735 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:09,735 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:09,739 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:09,739 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [440928950] [2023-02-17 09:41:09,739 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:09,739 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:09,739 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,745 INFO L229 MonitoredProcess]: Starting monitored process 73 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,764 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (73)] Waiting until timeout for monitored process [2023-02-17 09:41:09,805 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:09,805 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:09,805 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:09,820 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:09,828 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:09,863 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:09,864 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:09,864 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:09,864 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:09,864 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:09,864 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:09,864 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:09,864 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:09,864 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration15_Loop [2023-02-17 09:41:09,865 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:09,865 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:09,868 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:09,869 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:09,871 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:09,872 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:09,874 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:09,882 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:09,882 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:09,882 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:09,882 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,889 INFO L229 MonitoredProcess]: Starting monitored process 74 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,899 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:09,899 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:09,908 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (74)] Waiting until timeout for monitored process [2023-02-17 09:41:09,916 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:09,916 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post8#1=0} Honda state: {ULTIMATE.start_main_#t~post8#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:09,920 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (74)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:09,921 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:09,921 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,925 INFO L229 MonitoredProcess]: Starting monitored process 75 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,926 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (75)] Waiting until timeout for monitored process [2023-02-17 09:41:09,928 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:09,928 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:09,935 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:09,935 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~ret10#1=0} Honda state: {ULTIMATE.start_main_#t~ret10#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:09,938 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (75)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:09,944 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:09,945 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,946 INFO L229 MonitoredProcess]: Starting monitored process 76 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,948 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (76)] Waiting until timeout for monitored process [2023-02-17 09:41:09,950 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:09,950 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:09,957 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:09,957 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#res#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#res#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:09,960 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (76)] Ended with exit code 0 [2023-02-17 09:41:09,960 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:09,960 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,961 INFO L229 MonitoredProcess]: Starting monitored process 77 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,963 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (77)] Waiting until timeout for monitored process [2023-02-17 09:41:09,964 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:09,964 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:09,975 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (77)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:09,975 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:09,975 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:09,976 INFO L229 MonitoredProcess]: Starting monitored process 78 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:09,977 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (78)] Waiting until timeout for monitored process [2023-02-17 09:41:09,979 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:09,979 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:09,992 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:09,995 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (78)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:09,995 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:09,995 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:09,995 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:09,995 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:09,996 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:09,996 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:09,996 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:09,996 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:09,996 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration15_Loop [2023-02-17 09:41:09,996 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:09,996 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:09,997 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:09,998 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:10,000 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:10,001 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:10,002 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:10,005 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:10,006 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:10,006 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:10,006 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:10,007 INFO L229 MonitoredProcess]: Starting monitored process 79 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:10,009 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (79)] Waiting until timeout for monitored process [2023-02-17 09:41:10,011 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:10,017 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:10,017 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:10,017 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:10,017 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:10,017 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:10,018 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:10,018 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:10,028 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:10,031 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (79)] Ended with exit code 0 [2023-02-17 09:41:10,031 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:10,031 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:10,032 INFO L229 MonitoredProcess]: Starting monitored process 80 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:10,034 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (80)] Waiting until timeout for monitored process [2023-02-17 09:41:10,035 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:10,041 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:10,041 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:10,041 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:10,041 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:10,041 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:10,042 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:10,042 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:10,043 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:10,045 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (80)] Ended with exit code 0 [2023-02-17 09:41:10,045 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:10,045 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:10,046 INFO L229 MonitoredProcess]: Starting monitored process 81 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:10,048 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (81)] Waiting until timeout for monitored process [2023-02-17 09:41:10,049 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:10,055 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:10,055 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:10,055 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:10,055 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:10,055 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:10,056 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:10,056 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:10,057 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:10,060 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (81)] Ended with exit code 0 [2023-02-17 09:41:10,061 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:10,061 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:10,062 INFO L229 MonitoredProcess]: Starting monitored process 82 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:10,064 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (82)] Waiting until timeout for monitored process [2023-02-17 09:41:10,065 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:10,071 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:10,071 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:10,071 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:10,071 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:10,071 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:10,072 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:10,072 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:10,073 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:10,075 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (82)] Ended with exit code 0 [2023-02-17 09:41:10,075 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:10,075 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:10,076 INFO L229 MonitoredProcess]: Starting monitored process 83 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:10,078 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (83)] Waiting until timeout for monitored process [2023-02-17 09:41:10,079 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:10,085 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:10,085 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:10,085 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:10,085 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:10,086 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:10,088 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:10,088 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:10,100 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:10,102 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:10,102 INFO L444 ModelExtractionUtils]: 8 out of 11 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-17 09:41:10,103 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:10,103 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:10,104 INFO L229 MonitoredProcess]: Starting monitored process 84 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:10,106 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (84)] Waiting until timeout for monitored process [2023-02-17 09:41:10,107 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:10,107 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:10,107 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:10,107 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~k~0#1) = -2*ULTIMATE.start_main_~k~0#1 + 7 Supporting invariants [] [2023-02-17 09:41:10,110 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (83)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:10,110 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:10,117 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:10,180 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:10,182 INFO L263 TraceCheckSpWp]: Trace formula consists of 400 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-17 09:41:10,184 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:10,272 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:10,275 INFO L263 TraceCheckSpWp]: Trace formula consists of 457 conjuncts, 38 conjunts are in the unsatisfiable core [2023-02-17 09:41:10,277 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:10,395 INFO L134 CoverageAnalysis]: Checked inductivity of 276 backedges. 0 proven. 148 refuted. 0 times theorem prover too weak. 128 trivial. 0 not checked. [2023-02-17 09:41:10,396 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 11 loop predicates [2023-02-17 09:41:10,396 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 635 states and 896 transitions. cyclomatic complexity: 279 Second operand has 14 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 12 states have internal predecessors, (38), 6 states have call successors, (12), 2 states have call predecessors, (12), 7 states have return successors, (15), 9 states have call predecessors, (15), 6 states have call successors, (15) [2023-02-17 09:41:10,607 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 635 states and 896 transitions. cyclomatic complexity: 279. Second operand has 14 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 12 states have internal predecessors, (38), 6 states have call successors, (12), 2 states have call predecessors, (12), 7 states have return successors, (15), 9 states have call predecessors, (15), 6 states have call successors, (15) Result 1464 states and 1908 transitions. Complement of second has 57 states. [2023-02-17 09:41:10,607 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 13 states 2 stem states 10 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:10,608 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 12 states have internal predecessors, (38), 6 states have call successors, (12), 2 states have call predecessors, (12), 7 states have return successors, (15), 9 states have call predecessors, (15), 6 states have call successors, (15) [2023-02-17 09:41:10,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 84 transitions. [2023-02-17 09:41:10,608 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 84 transitions. Stem has 60 letters. Loop has 68 letters. [2023-02-17 09:41:10,609 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:10,609 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 84 transitions. Stem has 128 letters. Loop has 68 letters. [2023-02-17 09:41:10,609 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:10,609 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 13 states and 84 transitions. Stem has 60 letters. Loop has 136 letters. [2023-02-17 09:41:10,610 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:10,610 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1464 states and 1908 transitions. [2023-02-17 09:41:10,619 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 107 [2023-02-17 09:41:10,627 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1464 states to 1254 states and 1652 transitions. [2023-02-17 09:41:10,628 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 355 [2023-02-17 09:41:10,628 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 357 [2023-02-17 09:41:10,628 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1254 states and 1652 transitions. [2023-02-17 09:41:10,629 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:10,629 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1254 states and 1652 transitions. [2023-02-17 09:41:10,630 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1254 states and 1652 transitions. [2023-02-17 09:41:10,647 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1254 to 985. [2023-02-17 09:41:10,648 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 985 states, 643 states have (on average 1.0948678071539657) internal successors, (704), 652 states have internal predecessors, (704), 194 states have call successors, (202), 98 states have call predecessors, (202), 148 states have return successors, (424), 234 states have call predecessors, (424), 194 states have call successors, (424) [2023-02-17 09:41:10,651 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 985 states to 985 states and 1330 transitions. [2023-02-17 09:41:10,651 INFO L240 hiAutomatonCegarLoop]: Abstraction has 985 states and 1330 transitions. [2023-02-17 09:41:10,652 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:10,652 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2023-02-17 09:41:10,652 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=143, Unknown=0, NotChecked=0, Total=182 [2023-02-17 09:41:10,652 INFO L87 Difference]: Start difference. First operand 985 states and 1330 transitions. Second operand has 14 states, 11 states have (on average 3.272727272727273) internal successors, (36), 13 states have internal predecessors, (36), 8 states have call successors, (16), 1 states have call predecessors, (16), 3 states have return successors, (16), 8 states have call predecessors, (16), 8 states have call successors, (16) [2023-02-17 09:41:10,668 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (84)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:11,000 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:11,001 INFO L93 Difference]: Finished difference Result 1175 states and 1605 transitions. [2023-02-17 09:41:11,001 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1175 states and 1605 transitions. [2023-02-17 09:41:11,009 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 148 [2023-02-17 09:41:11,016 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1175 states to 1069 states and 1477 transitions. [2023-02-17 09:41:11,016 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 357 [2023-02-17 09:41:11,016 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 357 [2023-02-17 09:41:11,017 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1069 states and 1477 transitions. [2023-02-17 09:41:11,017 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:11,017 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1069 states and 1477 transitions. [2023-02-17 09:41:11,018 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1069 states and 1477 transitions. [2023-02-17 09:41:11,035 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1069 to 875. [2023-02-17 09:41:11,036 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 875 states, 561 states have (on average 1.0944741532976827) internal successors, (614), 572 states have internal predecessors, (614), 192 states have call successors, (200), 84 states have call predecessors, (200), 122 states have return successors, (384), 218 states have call predecessors, (384), 192 states have call successors, (384) [2023-02-17 09:41:11,039 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 875 states to 875 states and 1198 transitions. [2023-02-17 09:41:11,039 INFO L240 hiAutomatonCegarLoop]: Abstraction has 875 states and 1198 transitions. [2023-02-17 09:41:11,040 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2023-02-17 09:41:11,040 INFO L428 stractBuchiCegarLoop]: Abstraction has 875 states and 1198 transitions. [2023-02-17 09:41:11,040 INFO L335 stractBuchiCegarLoop]: ======== Iteration 16 ============ [2023-02-17 09:41:11,040 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 875 states and 1198 transitions. [2023-02-17 09:41:11,044 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 117 [2023-02-17 09:41:11,044 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:11,044 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:11,045 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 6, 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, 1, 1] [2023-02-17 09:41:11,045 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:11,045 INFO L748 eck$LassoCheckResult]: Stem: 27764#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 27716#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 27717#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 27738#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 27765#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 27982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27980#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27976#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27977#$Ultimate##0 ~n := #in~n; 27981#L25 assume ~n <= 0;#res := 1; 27979#factFINAL assume true; 27975#factEXIT >#68#return; 27971#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27972#$Ultimate##0 ~n := #in~n; 27978#L25 assume ~n <= 0;#res := 1; 27974#factFINAL assume true; 27970#factEXIT >#70#return; 27967#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27968#$Ultimate##0 ~n := #in~n; 27973#L25 assume ~n <= 0;#res := 1; 27969#factFINAL assume true; 27966#factEXIT >#72#return; 27965#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27962#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 27950#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 27943#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27940#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27935#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27936#$Ultimate##0 ~n := #in~n; 27957#L25 assume !(~n <= 0); 27945#L26 call #t~ret0 := fact(~n - 1);< 27948#$Ultimate##0 ~n := #in~n; 27954#L25 assume ~n <= 0;#res := 1; 27951#factFINAL assume true; 27944#factEXIT >#66#return; 27941#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27939#factFINAL assume true; 27934#factEXIT >#74#return; 27902#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27905#$Ultimate##0 ~n := #in~n; 27938#L25 assume ~n <= 0;#res := 1; 27933#factFINAL assume true; 27901#factEXIT >#76#return; 27723#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27848#$Ultimate##0 ~n := #in~n; 27849#L25 assume !(~n <= 0); 27722#L26 call #t~ret0 := fact(~n - 1);< 27724#$Ultimate##0 ~n := #in~n; 27747#L25 assume ~n <= 0;#res := 1; 27748#factFINAL assume true; 28160#factEXIT >#66#return; 28159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 28157#factFINAL assume true; 27882#factEXIT >#78#return; 27883#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27880#binomialCoefficient_returnLabel#2 [2023-02-17 09:41:11,046 INFO L750 eck$LassoCheckResult]: Loop: 27880#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 27879#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 27878#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 27877#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 27875#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 27876#$Ultimate##0 ~n := #in~n; 27919#L25 assume !(~n <= 0); 27913#L26 call #t~ret0 := fact(~n - 1);< 27916#$Ultimate##0 ~n := #in~n; 27920#L25 assume !(~n <= 0); 27912#L26 call #t~ret0 := fact(~n - 1);< 27918#$Ultimate##0 ~n := #in~n; 27920#L25 assume !(~n <= 0); 27912#L26 call #t~ret0 := fact(~n - 1);< 27918#$Ultimate##0 ~n := #in~n; 27920#L25 assume !(~n <= 0); 27912#L26 call #t~ret0 := fact(~n - 1);< 27918#$Ultimate##0 ~n := #in~n; 27920#L25 assume !(~n <= 0); 27912#L26 call #t~ret0 := fact(~n - 1);< 27918#$Ultimate##0 ~n := #in~n; 27921#L25 assume ~n <= 0;#res := 1; 27963#factFINAL assume true; 27960#factEXIT >#66#return; 27959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27958#factFINAL assume true; 27949#factEXIT >#66#return; 27942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27937#factFINAL assume true; 27932#factEXIT >#66#return; 27931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27930#factFINAL assume true; 27928#factEXIT >#66#return; 27914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27917#factFINAL assume true; 27911#factEXIT >#66#return; 27910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 27909#factFINAL assume true; 27907#factEXIT >#74#return; 27899#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 27903#$Ultimate##0 ~n := #in~n; 27908#L25 assume ~n <= 0;#res := 1; 27906#factFINAL assume true; 27898#factEXIT >#76#return; 27900#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 27876#$Ultimate##0 ~n := #in~n; 27919#L25 assume !(~n <= 0); 27913#L26 call #t~ret0 := fact(~n - 1);< 27916#$Ultimate##0 ~n := #in~n; 27922#L25 assume ~n <= 0;#res := 1; 28000#factFINAL assume true; 27999#factEXIT >#66#return; 27929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 28001#factFINAL assume true; 27984#factEXIT >#78#return; 27881#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 27880#binomialCoefficient_returnLabel#2 [2023-02-17 09:41:11,046 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:11,046 INFO L85 PathProgramCache]: Analyzing trace with hash 970322272, now seen corresponding path program 1 times [2023-02-17 09:41:11,046 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:11,046 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1099716223] [2023-02-17 09:41:11,046 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:11,047 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:11,051 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:11,051 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [269312494] [2023-02-17 09:41:11,051 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:11,052 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:11,052 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:11,053 INFO L229 MonitoredProcess]: Starting monitored process 85 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:11,076 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (85)] Waiting until timeout for monitored process [2023-02-17 09:41:11,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:11,113 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:11,127 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:11,136 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:11,136 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:11,136 INFO L85 PathProgramCache]: Analyzing trace with hash -2142764834, now seen corresponding path program 5 times [2023-02-17 09:41:11,136 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:11,136 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1202247356] [2023-02-17 09:41:11,137 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:11,137 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:11,141 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:11,141 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [28623680] [2023-02-17 09:41:11,141 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:11,141 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:11,141 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:11,147 INFO L229 MonitoredProcess]: Starting monitored process 86 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:11,167 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (86)] Waiting until timeout for monitored process [2023-02-17 09:41:11,204 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 10 check-sat command(s) [2023-02-17 09:41:11,204 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:11,205 INFO L263 TraceCheckSpWp]: Trace formula consists of 125 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-17 09:41:11,206 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:11,241 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 67 proven. 41 refuted. 0 times theorem prover too weak. 66 trivial. 0 not checked. [2023-02-17 09:41:11,241 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:11,335 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 67 proven. 44 refuted. 0 times theorem prover too weak. 63 trivial. 0 not checked. [2023-02-17 09:41:11,335 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:11,335 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1202247356] [2023-02-17 09:41:11,336 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:11,336 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [28623680] [2023-02-17 09:41:11,336 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [28623680] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:11,336 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:11,337 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 15 [2023-02-17 09:41:11,338 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1747482023] [2023-02-17 09:41:11,338 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:11,338 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:11,338 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:11,339 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2023-02-17 09:41:11,339 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=169, Unknown=0, NotChecked=0, Total=210 [2023-02-17 09:41:11,339 INFO L87 Difference]: Start difference. First operand 875 states and 1198 transitions. cyclomatic complexity: 345 Second operand has 15 states, 12 states have (on average 2.5833333333333335) internal successors, (31), 12 states have internal predecessors, (31), 9 states have call successors, (10), 1 states have call predecessors, (10), 5 states have return successors, (11), 8 states have call predecessors, (11), 9 states have call successors, (11) [2023-02-17 09:41:11,638 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:11,639 INFO L93 Difference]: Finished difference Result 1281 states and 1736 transitions. [2023-02-17 09:41:11,639 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1281 states and 1736 transitions. [2023-02-17 09:41:11,647 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 192 [2023-02-17 09:41:11,656 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1281 states to 1261 states and 1706 transitions. [2023-02-17 09:41:11,656 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 421 [2023-02-17 09:41:11,656 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 421 [2023-02-17 09:41:11,657 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1261 states and 1706 transitions. [2023-02-17 09:41:11,657 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:11,657 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1261 states and 1706 transitions. [2023-02-17 09:41:11,658 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1261 states and 1706 transitions. [2023-02-17 09:41:11,690 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1261 to 987. [2023-02-17 09:41:11,691 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 987 states, 625 states have (on average 1.0848) internal successors, (678), 628 states have internal predecessors, (678), 230 states have call successors, (242), 110 states have call predecessors, (242), 132 states have return successors, (458), 248 states have call predecessors, (458), 230 states have call successors, (458) [2023-02-17 09:41:11,695 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 987 states to 987 states and 1378 transitions. [2023-02-17 09:41:11,695 INFO L240 hiAutomatonCegarLoop]: Abstraction has 987 states and 1378 transitions. [2023-02-17 09:41:11,696 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2023-02-17 09:41:11,696 INFO L428 stractBuchiCegarLoop]: Abstraction has 987 states and 1378 transitions. [2023-02-17 09:41:11,696 INFO L335 stractBuchiCegarLoop]: ======== Iteration 17 ============ [2023-02-17 09:41:11,700 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 987 states and 1378 transitions. [2023-02-17 09:41:11,705 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 123 [2023-02-17 09:41:11,705 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:11,705 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:11,706 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 6, 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, 1, 1] [2023-02-17 09:41:11,706 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [10, 10, 7, 7, 7, 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:11,706 INFO L748 eck$LassoCheckResult]: Stem: 30286#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 30230#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 30231#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 30252#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 30287#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 30557#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 30255#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 30221#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 30222#$Ultimate##0 ~n := #in~n; 30525#L25 assume ~n <= 0;#res := 1; 30524#factFINAL assume true; 30522#factEXIT >#68#return; 30519#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 30520#$Ultimate##0 ~n := #in~n; 30523#L25 assume ~n <= 0;#res := 1; 30521#factFINAL assume true; 30518#factEXIT >#70#return; 30516#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 30517#$Ultimate##0 ~n := #in~n; 30531#L25 assume ~n <= 0;#res := 1; 30528#factFINAL assume true; 30515#factEXIT >#72#return; 30514#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 30513#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 30511#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 30505#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 30503#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 30498#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 30499#$Ultimate##0 ~n := #in~n; 30512#L25 assume !(~n <= 0); 30507#L26 call #t~ret0 := fact(~n - 1);< 30510#$Ultimate##0 ~n := #in~n; 30529#L25 assume ~n <= 0;#res := 1; 30526#factFINAL assume true; 30506#factEXIT >#66#return; 30504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30502#factFINAL assume true; 30497#factEXIT >#74#return; 30492#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 30494#$Ultimate##0 ~n := #in~n; 30501#L25 assume ~n <= 0;#res := 1; 30496#factFINAL assume true; 30491#factEXIT >#76#return; 30236#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 30487#$Ultimate##0 ~n := #in~n; 30486#L25 assume !(~n <= 0); 30235#L26 call #t~ret0 := fact(~n - 1);< 30237#$Ultimate##0 ~n := #in~n; 30559#L25 assume ~n <= 0;#res := 1; 30900#factFINAL assume true; 30899#factEXIT >#66#return; 30898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30897#factFINAL assume true; 30896#factEXIT >#78#return; 30894#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 30895#binomialCoefficient_returnLabel#2 [2023-02-17 09:41:11,707 INFO L750 eck$LassoCheckResult]: Loop: 30895#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 30912#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 30910#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 30485#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 30206#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 30207#$Ultimate##0 ~n := #in~n; 30470#L25 assume !(~n <= 0); 30212#L26 call #t~ret0 := fact(~n - 1);< 30459#$Ultimate##0 ~n := #in~n; 30464#L25 assume !(~n <= 0); 30454#L26 call #t~ret0 := fact(~n - 1);< 30462#$Ultimate##0 ~n := #in~n; 30464#L25 assume !(~n <= 0); 30454#L26 call #t~ret0 := fact(~n - 1);< 30462#$Ultimate##0 ~n := #in~n; 30464#L25 assume !(~n <= 0); 30454#L26 call #t~ret0 := fact(~n - 1);< 30462#$Ultimate##0 ~n := #in~n; 30464#L25 assume !(~n <= 0); 30454#L26 call #t~ret0 := fact(~n - 1);< 30462#$Ultimate##0 ~n := #in~n; 30480#L25 assume ~n <= 0;#res := 1; 30479#factFINAL assume true; 30478#factEXIT >#66#return; 30477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30476#factFINAL assume true; 30474#factEXIT >#66#return; 30473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30472#factFINAL assume true; 30471#factEXIT >#66#return; 30468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30466#factFINAL assume true; 30465#factEXIT >#66#return; 30458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30461#factFINAL assume true; 30453#factEXIT >#66#return; 30451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30449#factFINAL assume true; 30446#factEXIT >#74#return; 30280#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 30281#$Ultimate##0 ~n := #in~n; 30463#L25 assume ~n <= 0;#res := 1; 30460#factFINAL assume true; 30452#factEXIT >#76#return; 30261#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 30450#$Ultimate##0 ~n := #in~n; 30469#L25 assume !(~n <= 0); 30455#L26 call #t~ret0 := fact(~n - 1);< 30467#$Ultimate##0 ~n := #in~n; 30464#L25 assume !(~n <= 0); 30454#L26 call #t~ret0 := fact(~n - 1);< 30462#$Ultimate##0 ~n := #in~n; 30480#L25 assume ~n <= 0;#res := 1; 30479#factFINAL assume true; 30478#factEXIT >#66#return; 30477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30476#factFINAL assume true; 30474#factEXIT >#66#return; 30260#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 30262#factFINAL assume true; 30915#factEXIT >#78#return; 30447#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 30895#binomialCoefficient_returnLabel#2 [2023-02-17 09:41:11,707 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:11,707 INFO L85 PathProgramCache]: Analyzing trace with hash 970322272, now seen corresponding path program 2 times [2023-02-17 09:41:11,708 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:11,708 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [74906002] [2023-02-17 09:41:11,708 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:11,708 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:11,713 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:11,713 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1597219221] [2023-02-17 09:41:11,713 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:11,713 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:11,714 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:11,719 INFO L229 MonitoredProcess]: Starting monitored process 87 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:11,720 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (87)] Waiting until timeout for monitored process [2023-02-17 09:41:11,776 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:11,776 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:11,777 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:11,792 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:11,803 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:11,803 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:11,803 INFO L85 PathProgramCache]: Analyzing trace with hash 1534053414, now seen corresponding path program 6 times [2023-02-17 09:41:11,803 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:11,803 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [612595190] [2023-02-17 09:41:11,803 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:11,804 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:11,808 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:11,809 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [535654601] [2023-02-17 09:41:11,809 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:11,809 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:11,809 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:11,812 INFO L229 MonitoredProcess]: Starting monitored process 88 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:11,836 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (88)] Waiting until timeout for monitored process [2023-02-17 09:41:11,878 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 12 check-sat command(s) [2023-02-17 09:41:11,878 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:11,879 INFO L263 TraceCheckSpWp]: Trace formula consists of 137 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:41:11,881 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:11,935 INFO L134 CoverageAnalysis]: Checked inductivity of 222 backedges. 52 proven. 100 refuted. 0 times theorem prover too weak. 70 trivial. 0 not checked. [2023-02-17 09:41:11,935 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:12,132 INFO L134 CoverageAnalysis]: Checked inductivity of 222 backedges. 50 proven. 121 refuted. 0 times theorem prover too weak. 51 trivial. 0 not checked. [2023-02-17 09:41:12,133 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:12,133 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [612595190] [2023-02-17 09:41:12,133 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:12,133 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [535654601] [2023-02-17 09:41:12,133 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [535654601] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:12,133 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:12,134 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 19] total 24 [2023-02-17 09:41:12,134 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [856517914] [2023-02-17 09:41:12,134 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:12,134 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:12,134 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:12,135 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2023-02-17 09:41:12,135 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=457, Unknown=0, NotChecked=0, Total=552 [2023-02-17 09:41:12,135 INFO L87 Difference]: Start difference. First operand 987 states and 1378 transitions. cyclomatic complexity: 413 Second operand has 24 states, 20 states have (on average 2.25) internal successors, (45), 20 states have internal predecessors, (45), 14 states have call successors, (14), 1 states have call predecessors, (14), 9 states have return successors, (19), 12 states have call predecessors, (19), 14 states have call successors, (19) [2023-02-17 09:41:13,085 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:13,085 INFO L93 Difference]: Finished difference Result 2131 states and 3646 transitions. [2023-02-17 09:41:13,085 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2131 states and 3646 transitions. [2023-02-17 09:41:13,100 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 431 [2023-02-17 09:41:13,120 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2131 states to 2097 states and 3596 transitions. [2023-02-17 09:41:13,120 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 750 [2023-02-17 09:41:13,121 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 750 [2023-02-17 09:41:13,121 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2097 states and 3596 transitions. [2023-02-17 09:41:13,122 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:13,122 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2097 states and 3596 transitions. [2023-02-17 09:41:13,123 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2097 states and 3596 transitions. [2023-02-17 09:41:13,159 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2097 to 1267. [2023-02-17 09:41:13,161 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1267 states, 757 states have (on average 1.07001321003963) internal successors, (810), 756 states have internal predecessors, (810), 356 states have call successors, (372), 156 states have call predecessors, (372), 154 states have return successors, (1016), 354 states have call predecessors, (1016), 356 states have call successors, (1016) [2023-02-17 09:41:13,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1267 states to 1267 states and 2198 transitions. [2023-02-17 09:41:13,167 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1267 states and 2198 transitions. [2023-02-17 09:41:13,168 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2023-02-17 09:41:13,168 INFO L428 stractBuchiCegarLoop]: Abstraction has 1267 states and 2198 transitions. [2023-02-17 09:41:13,168 INFO L335 stractBuchiCegarLoop]: ======== Iteration 18 ============ [2023-02-17 09:41:13,168 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1267 states and 2198 transitions. [2023-02-17 09:41:13,173 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 161 [2023-02-17 09:41:13,173 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:13,174 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:13,174 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [8, 8, 6, 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, 1, 1] [2023-02-17 09:41:13,174 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [13, 13, 10, 10, 10, 10, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:13,175 INFO L748 eck$LassoCheckResult]: Stem: 33830#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 33773#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 33774#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 33796#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 33831#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 34100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 34099#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 33763#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 33764#$Ultimate##0 ~n := #in~n; 34130#L25 assume ~n <= 0;#res := 1; 34126#factFINAL assume true; 34124#factEXIT >#68#return; 33819#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 33820#$Ultimate##0 ~n := #in~n; 33823#L25 assume ~n <= 0;#res := 1; 34360#factFINAL assume true; 34359#factEXIT >#70#return; 33752#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 33753#$Ultimate##0 ~n := #in~n; 34264#L25 assume ~n <= 0;#res := 1; 34262#factFINAL assume true; 34260#factEXIT >#72#return; 34257#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 34256#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 34255#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 34253#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 34247#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 34212#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 34213#$Ultimate##0 ~n := #in~n; 34254#L25 assume !(~n <= 0); 34250#L26 call #t~ret0 := fact(~n - 1);< 34252#$Ultimate##0 ~n := #in~n; 34277#L25 assume ~n <= 0;#res := 1; 34272#factFINAL assume true; 34248#factEXIT >#66#return; 34233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34227#factFINAL assume true; 34211#factEXIT >#74#return; 34205#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 34207#$Ultimate##0 ~n := #in~n; 34225#L25 assume ~n <= 0;#res := 1; 34224#factFINAL assume true; 34204#factEXIT >#76#return; 33780#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 33832#$Ultimate##0 ~n := #in~n; 34358#L25 assume !(~n <= 0); 33779#L26 call #t~ret0 := fact(~n - 1);< 33781#$Ultimate##0 ~n := #in~n; 34371#L25 assume ~n <= 0;#res := 1; 34401#factFINAL assume true; 34400#factEXIT >#66#return; 34399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34398#factFINAL assume true; 34397#factEXIT >#78#return; 34396#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 34385#binomialCoefficient_returnLabel#2 [2023-02-17 09:41:13,175 INFO L750 eck$LassoCheckResult]: Loop: 34385#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 34383#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 34381#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 33799#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 33748#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 33749#$Ultimate##0 ~n := #in~n; 34163#L25 assume !(~n <= 0); 33758#L26 call #t~ret0 := fact(~n - 1);< 34162#$Ultimate##0 ~n := #in~n; 34135#L25 assume !(~n <= 0); 34066#L26 call #t~ret0 := fact(~n - 1);< 34139#$Ultimate##0 ~n := #in~n; 34135#L25 assume !(~n <= 0); 34066#L26 call #t~ret0 := fact(~n - 1);< 34139#$Ultimate##0 ~n := #in~n; 34135#L25 assume !(~n <= 0); 34066#L26 call #t~ret0 := fact(~n - 1);< 34139#$Ultimate##0 ~n := #in~n; 34135#L25 assume !(~n <= 0); 34066#L26 call #t~ret0 := fact(~n - 1);< 34139#$Ultimate##0 ~n := #in~n; 34148#L25 assume ~n <= 0;#res := 1; 34141#factFINAL assume true; 34138#factEXIT >#66#return; 34134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34131#factFINAL assume true; 34127#factEXIT >#66#return; 34125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34123#factFINAL assume true; 34121#factEXIT >#66#return; 34120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34119#factFINAL assume true; 34118#factEXIT >#66#return; 34068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34108#factFINAL assume true; 34060#factEXIT >#66#return; 34058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34054#factFINAL assume true; 34050#factEXIT >#74#return; 33825#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 33826#$Ultimate##0 ~n := #in~n; 34073#L25 assume ~n <= 0;#res := 1; 34071#factFINAL assume true; 34059#factEXIT >#76#return; 34051#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 34055#$Ultimate##0 ~n := #in~n; 34298#L25 assume !(~n <= 0); 34064#L26 call #t~ret0 := fact(~n - 1);< 34070#$Ultimate##0 ~n := #in~n; 34203#L25 assume !(~n <= 0); 34065#L26 call #t~ret0 := fact(~n - 1);< 34109#$Ultimate##0 ~n := #in~n; 34136#L25 assume !(~n <= 0); 34067#L26 call #t~ret0 := fact(~n - 1);< 34122#$Ultimate##0 ~n := #in~n; 34149#L25 assume !(~n <= 0); 34061#L26 call #t~ret0 := fact(~n - 1);< 34129#$Ultimate##0 ~n := #in~n; 34135#L25 assume !(~n <= 0); 34066#L26 call #t~ret0 := fact(~n - 1);< 34139#$Ultimate##0 ~n := #in~n; 34148#L25 assume ~n <= 0;#res := 1; 34141#factFINAL assume true; 34138#factEXIT >#66#return; 34134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34131#factFINAL assume true; 34127#factEXIT >#66#return; 34125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34123#factFINAL assume true; 34121#factEXIT >#66#return; 34120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34119#factFINAL assume true; 34118#factEXIT >#66#return; 34068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34108#factFINAL assume true; 34060#factEXIT >#66#return; 34058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 34054#factFINAL assume true; 34050#factEXIT >#78#return; 34052#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 34385#binomialCoefficient_returnLabel#2 [2023-02-17 09:41:13,175 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:13,175 INFO L85 PathProgramCache]: Analyzing trace with hash 970322272, now seen corresponding path program 3 times [2023-02-17 09:41:13,175 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:13,176 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [681131227] [2023-02-17 09:41:13,176 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:13,176 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:13,181 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:13,181 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1646250410] [2023-02-17 09:41:13,181 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:13,181 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:13,181 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:13,189 INFO L229 MonitoredProcess]: Starting monitored process 89 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:13,207 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (89)] Waiting until timeout for monitored process [2023-02-17 09:41:13,259 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2023-02-17 09:41:13,260 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:13,260 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:13,274 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:13,284 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:13,284 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:13,285 INFO L85 PathProgramCache]: Analyzing trace with hash -1988608930, now seen corresponding path program 7 times [2023-02-17 09:41:13,285 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:13,285 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [838504478] [2023-02-17 09:41:13,285 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:13,285 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:13,291 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:13,291 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [152010659] [2023-02-17 09:41:13,291 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:41:13,291 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:13,291 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:13,292 INFO L229 MonitoredProcess]: Starting monitored process 90 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:13,294 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (90)] Waiting until timeout for monitored process [2023-02-17 09:41:13,369 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:13,370 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:13,391 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:13,401 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:13,403 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:13,403 INFO L85 PathProgramCache]: Analyzing trace with hash -666167363, now seen corresponding path program 1 times [2023-02-17 09:41:13,403 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:13,403 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2060701621] [2023-02-17 09:41:13,403 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:13,403 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:13,413 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:13,413 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [428757648] [2023-02-17 09:41:13,413 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:13,413 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:13,413 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:13,416 INFO L229 MonitoredProcess]: Starting monitored process 91 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:13,440 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (91)] Waiting until timeout for monitored process [2023-02-17 09:41:13,513 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:13,514 INFO L263 TraceCheckSpWp]: Trace formula consists of 309 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-17 09:41:13,521 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:13,560 INFO L134 CoverageAnalysis]: Checked inductivity of 983 backedges. 582 proven. 25 refuted. 0 times theorem prover too weak. 376 trivial. 0 not checked. [2023-02-17 09:41:13,560 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:13,634 INFO L134 CoverageAnalysis]: Checked inductivity of 983 backedges. 120 proven. 122 refuted. 0 times theorem prover too weak. 741 trivial. 0 not checked. [2023-02-17 09:41:13,634 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:13,634 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2060701621] [2023-02-17 09:41:13,634 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:13,634 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [428757648] [2023-02-17 09:41:13,634 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [428757648] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:13,634 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:13,635 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-17 09:41:13,635 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2086084823] [2023-02-17 09:41:13,635 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:13,677 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:13,678 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:13,678 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:13,678 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:13,678 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:13,678 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:13,678 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:13,678 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:13,678 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration18_Loop [2023-02-17 09:41:13,678 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:13,678 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:13,681 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,681 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,682 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,688 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,689 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,689 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,693 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 11 [2023-02-17 09:41:13,706 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:13,707 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:13,707 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:13,707 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:13,710 INFO L229 MonitoredProcess]: Starting monitored process 92 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:13,711 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (92)] Waiting until timeout for monitored process [2023-02-17 09:41:13,713 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:13,713 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:13,733 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:13,733 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post8#1=0} Honda state: {ULTIMATE.start_main_#t~post8#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:13,737 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (92)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:13,737 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:13,737 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:13,738 INFO L229 MonitoredProcess]: Starting monitored process 93 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:13,746 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:13,746 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:13,755 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (93)] Waiting until timeout for monitored process [2023-02-17 09:41:13,772 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:13,772 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret1#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret1#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:13,776 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (93)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:13,776 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:13,776 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:13,777 INFO L229 MonitoredProcess]: Starting monitored process 94 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:13,780 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (94)] Waiting until timeout for monitored process [2023-02-17 09:41:13,781 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:13,781 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:13,843 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (94)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:13,844 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:13,844 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:13,845 INFO L229 MonitoredProcess]: Starting monitored process 95 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:13,853 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:13,853 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:13,860 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (95)] Waiting until timeout for monitored process [2023-02-17 09:41:13,969 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:13,974 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (95)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:13,974 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:13,974 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:13,974 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:13,974 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:13,974 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:13,974 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:13,974 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:13,974 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:13,974 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration18_Loop [2023-02-17 09:41:13,975 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:13,975 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:13,977 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,982 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,983 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,983 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,984 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,984 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:13,988 WARN L137 XnfTransformerHelper]: expecting exponential blowup for input size 11 [2023-02-17 09:41:14,001 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:14,001 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:14,001 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:14,002 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:14,003 INFO L229 MonitoredProcess]: Starting monitored process 96 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:14,005 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (96)] Waiting until timeout for monitored process [2023-02-17 09:41:14,007 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:14,014 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:14,014 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:14,014 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:14,014 INFO L204 nArgumentSynthesizer]: 32 loop disjuncts [2023-02-17 09:41:14,015 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:14,150 INFO L401 nArgumentSynthesizer]: We have 64 Motzkin's Theorem applications. [2023-02-17 09:41:14,150 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:14,283 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:14,336 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:14,336 INFO L444 ModelExtractionUtils]: 7 out of 10 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-17 09:41:14,336 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:14,336 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:14,339 INFO L229 MonitoredProcess]: Starting monitored process 97 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:14,340 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (97)] Waiting until timeout for monitored process [2023-02-17 09:41:14,341 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:14,341 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:14,342 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:14,342 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~x~0#1, ULTIMATE.start_main_~k~0#1) = 9*ULTIMATE.start_main_~x~0#1 - 10*ULTIMATE.start_main_~k~0#1 Supporting invariants [] [2023-02-17 09:41:14,351 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (96)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:14,351 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:14,361 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:14,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:14,418 INFO L263 TraceCheckSpWp]: Trace formula consists of 362 conjuncts, 18 conjunts are in the unsatisfiable core [2023-02-17 09:41:14,419 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:14,511 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:14,515 INFO L263 TraceCheckSpWp]: Trace formula consists of 537 conjuncts, 45 conjunts are in the unsatisfiable core [2023-02-17 09:41:14,520 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:14,626 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (97)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:14,689 INFO L134 CoverageAnalysis]: Checked inductivity of 402 backedges. 0 proven. 216 refuted. 0 times theorem prover too weak. 186 trivial. 0 not checked. [2023-02-17 09:41:14,689 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 13 loop predicates [2023-02-17 09:41:14,689 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 1267 states and 2198 transitions. cyclomatic complexity: 953 Second operand has 16 states, 15 states have (on average 2.7333333333333334) internal successors, (41), 15 states have internal predecessors, (41), 6 states have call successors, (12), 2 states have call predecessors, (12), 8 states have return successors, (16), 9 states have call predecessors, (16), 6 states have call successors, (16) [2023-02-17 09:41:14,960 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 1267 states and 2198 transitions. cyclomatic complexity: 953. Second operand has 16 states, 15 states have (on average 2.7333333333333334) internal successors, (41), 15 states have internal predecessors, (41), 6 states have call successors, (12), 2 states have call predecessors, (12), 8 states have return successors, (16), 9 states have call predecessors, (16), 6 states have call successors, (16) Result 2338 states and 3833 transitions. Complement of second has 65 states. [2023-02-17 09:41:14,961 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 15 states 2 stem states 12 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:14,961 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 15 states have (on average 2.7333333333333334) internal successors, (41), 15 states have internal predecessors, (41), 6 states have call successors, (12), 2 states have call predecessors, (12), 8 states have return successors, (16), 9 states have call predecessors, (16), 6 states have call successors, (16) [2023-02-17 09:41:14,962 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 87 transitions. [2023-02-17 09:41:14,962 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 15 states and 87 transitions. Stem has 55 letters. Loop has 80 letters. [2023-02-17 09:41:14,963 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:14,963 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 15 states and 87 transitions. Stem has 135 letters. Loop has 80 letters. [2023-02-17 09:41:14,963 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:14,963 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 15 states and 87 transitions. Stem has 55 letters. Loop has 160 letters. [2023-02-17 09:41:14,964 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:14,964 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2338 states and 3833 transitions. [2023-02-17 09:41:14,980 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 161 [2023-02-17 09:41:14,996 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2338 states to 1833 states and 3078 transitions. [2023-02-17 09:41:14,996 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 441 [2023-02-17 09:41:14,996 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 444 [2023-02-17 09:41:14,996 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1833 states and 3078 transitions. [2023-02-17 09:41:14,997 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:14,997 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1833 states and 3078 transitions. [2023-02-17 09:41:14,998 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1833 states and 3078 transitions. [2023-02-17 09:41:15,036 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1833 to 1658. [2023-02-17 09:41:15,039 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1658 states, 1009 states have (on average 1.0594648166501486) internal successors, (1069), 1007 states have internal predecessors, (1069), 423 states have call successors, (451), 213 states have call predecessors, (451), 226 states have return successors, (1255), 437 states have call predecessors, (1255), 423 states have call successors, (1255) [2023-02-17 09:41:15,045 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1658 states to 1658 states and 2775 transitions. [2023-02-17 09:41:15,045 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1658 states and 2775 transitions. [2023-02-17 09:41:15,046 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:15,046 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-17 09:41:15,046 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=118, Unknown=0, NotChecked=0, Total=156 [2023-02-17 09:41:15,046 INFO L87 Difference]: Start difference. First operand 1658 states and 2775 transitions. Second operand has 13 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 13 states have internal predecessors, (43), 9 states have call successors, (17), 2 states have call predecessors, (17), 5 states have return successors, (18), 7 states have call predecessors, (18), 9 states have call successors, (18) [2023-02-17 09:41:15,376 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:15,376 INFO L93 Difference]: Finished difference Result 2049 states and 3764 transitions. [2023-02-17 09:41:15,376 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2049 states and 3764 transitions. [2023-02-17 09:41:15,392 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 228 [2023-02-17 09:41:15,417 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2049 states to 1974 states and 3682 transitions. [2023-02-17 09:41:15,418 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 581 [2023-02-17 09:41:15,419 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 581 [2023-02-17 09:41:15,419 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1974 states and 3682 transitions. [2023-02-17 09:41:15,420 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:15,421 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1974 states and 3682 transitions. [2023-02-17 09:41:15,423 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1974 states and 3682 transitions. [2023-02-17 09:41:15,507 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1974 to 1660. [2023-02-17 09:41:15,510 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1660 states, 1005 states have (on average 1.061691542288557) internal successors, (1067), 1005 states have internal predecessors, (1067), 446 states have call successors, (471), 197 states have call predecessors, (471), 209 states have return successors, (1351), 457 states have call predecessors, (1351), 446 states have call successors, (1351) [2023-02-17 09:41:15,518 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1660 states to 1660 states and 2889 transitions. [2023-02-17 09:41:15,519 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1660 states and 2889 transitions. [2023-02-17 09:41:15,519 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2023-02-17 09:41:15,520 INFO L428 stractBuchiCegarLoop]: Abstraction has 1660 states and 2889 transitions. [2023-02-17 09:41:15,520 INFO L335 stractBuchiCegarLoop]: ======== Iteration 19 ============ [2023-02-17 09:41:15,520 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1660 states and 2889 transitions. [2023-02-17 09:41:15,527 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 180 [2023-02-17 09:41:15,528 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:15,528 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:15,530 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [10, 10, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:15,530 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [32, 32, 23, 23, 23, 23, 9, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:15,530 INFO L748 eck$LassoCheckResult]: Stem: 42491#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 42433#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 42434#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 42456#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 42492#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 42799#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 43532#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 42431#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 42432#$Ultimate##0 ~n := #in~n; 43603#L25 assume ~n <= 0;#res := 1; 43600#factFINAL assume true; 43590#factEXIT >#68#return; 42482#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 42483#$Ultimate##0 ~n := #in~n; 43587#L25 assume ~n <= 0;#res := 1; 43586#factFINAL assume true; 43585#factEXIT >#70#return; 42415#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 42416#$Ultimate##0 ~n := #in~n; 43623#L25 assume ~n <= 0;#res := 1; 43622#factFINAL assume true; 43621#factEXIT >#72#return; 42451#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 42452#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 42472#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 43666#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 43659#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 43651#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 43652#$Ultimate##0 ~n := #in~n; 43667#L25 assume !(~n <= 0); 43662#L26 call #t~ret0 := fact(~n - 1);< 43665#$Ultimate##0 ~n := #in~n; 43671#L25 assume ~n <= 0;#res := 1; 43669#factFINAL assume true; 43661#factEXIT >#66#return; 43658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 43657#factFINAL assume true; 43650#factEXIT >#74#return; 43645#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 43646#$Ultimate##0 ~n := #in~n; 43656#L25 assume ~n <= 0;#res := 1; 43649#factFINAL assume true; 43644#factEXIT >#76#return; 43641#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 43642#$Ultimate##0 ~n := #in~n; 43674#L25 assume !(~n <= 0); 43654#L26 call #t~ret0 := fact(~n - 1);< 43655#$Ultimate##0 ~n := #in~n; 43668#L25 assume ~n <= 0;#res := 1; 43660#factFINAL assume true; 43653#factEXIT >#66#return; 43648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 43643#factFINAL assume true; 43640#factEXIT >#78#return; 43639#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 43638#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 43637#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 43390#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 42454#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 42455#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 43342#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 42958#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 42420#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 42671#$Ultimate##0 ~n := #in~n; 42677#L25 assume !(~n <= 0); 42558#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42647#L25 assume ~n <= 0;#res := 1; 42644#factFINAL assume true; 42574#factEXIT >#66#return; 42576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42417#factFINAL assume true; 42425#factEXIT >#68#return; 42423#L30-1 [2023-02-17 09:41:15,531 INFO L750 eck$LassoCheckResult]: Loop: 42423#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 42671#$Ultimate##0 ~n := #in~n; 42677#L25 assume ~n <= 0;#res := 1; 42674#factFINAL assume true; 42669#factEXIT >#70#return; 42421#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 42673#$Ultimate##0 ~n := #in~n; 42678#L25 assume !(~n <= 0); 42558#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42640#L25 assume ~n <= 0;#res := 1; 42638#factFINAL assume true; 42635#factEXIT >#66#return; 42634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42626#factFINAL assume true; 42552#factEXIT >#66#return; 42562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42619#factFINAL assume true; 42616#factEXIT >#66#return; 42615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42603#factFINAL assume true; 42600#factEXIT >#66#return; 42593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42595#factFINAL assume true; 42583#factEXIT >#66#return; 42591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42760#factFINAL assume true; 42672#factEXIT >#72#return; 42637#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 42633#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 42625#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 42624#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 42622#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 42523#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 42548#$Ultimate##0 ~n := #in~n; 42620#L25 assume !(~n <= 0); 42554#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42640#L25 assume ~n <= 0;#res := 1; 42638#factFINAL assume true; 42635#factEXIT >#66#return; 42634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42626#factFINAL assume true; 42552#factEXIT >#66#return; 42562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42619#factFINAL assume true; 42616#factEXIT >#66#return; 42551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42541#factFINAL assume true; 42546#factEXIT >#68#return; 42508#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 42548#$Ultimate##0 ~n := #in~n; 42620#L25 assume !(~n <= 0); 42554#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42640#L25 assume ~n <= 0;#res := 1; 42638#factFINAL assume true; 42635#factEXIT >#66#return; 42634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42626#factFINAL assume true; 42552#factEXIT >#66#return; 42562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42619#factFINAL assume true; 42616#factEXIT >#66#return; 42551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42541#factFINAL assume true; 42546#factEXIT >#70#return; 42507#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 42548#$Ultimate##0 ~n := #in~n; 42620#L25 assume !(~n <= 0); 42554#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42640#L25 assume ~n <= 0;#res := 1; 42638#factFINAL assume true; 42635#factEXIT >#66#return; 42634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42626#factFINAL assume true; 42552#factEXIT >#66#return; 42562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42619#factFINAL assume true; 42616#factEXIT >#66#return; 42551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42541#factFINAL assume true; 42546#factEXIT >#72#return; 42534#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 42599#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 42598#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 42594#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 42582#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 42530#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 42547#$Ultimate##0 ~n := #in~n; 42648#L25 assume !(~n <= 0); 42554#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42640#L25 assume ~n <= 0;#res := 1; 42638#factFINAL assume true; 42635#factEXIT >#66#return; 42634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42626#factFINAL assume true; 42552#factEXIT >#66#return; 42563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42645#factFINAL assume true; 42570#factEXIT >#74#return; 42526#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 42547#$Ultimate##0 ~n := #in~n; 42648#L25 assume !(~n <= 0); 42554#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42641#L25 assume !(~n <= 0); 42553#L26 call #t~ret0 := fact(~n - 1);< 42636#$Ultimate##0 ~n := #in~n; 42640#L25 assume ~n <= 0;#res := 1; 42638#factFINAL assume true; 42635#factEXIT >#66#return; 42634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42626#factFINAL assume true; 42552#factEXIT >#66#return; 42562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42619#factFINAL assume true; 42616#factEXIT >#66#return; 42615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42603#factFINAL assume true; 42600#factEXIT >#66#return; 42593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42595#factFINAL assume true; 42583#factEXIT >#66#return; 42581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42579#factFINAL assume true; 42578#factEXIT >#76#return; 42517#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 42547#$Ultimate##0 ~n := #in~n; 42648#L25 assume !(~n <= 0); 42554#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42647#L25 assume ~n <= 0;#res := 1; 42644#factFINAL assume true; 42574#factEXIT >#66#return; 42573#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42572#factFINAL assume true; 42501#factEXIT >#78#return; 42500#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 42499#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 42498#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 42496#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 42453#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 42445#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 42446#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 42683#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 42418#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 42671#$Ultimate##0 ~n := #in~n; 42677#L25 assume !(~n <= 0); 42558#L26 call #t~ret0 := fact(~n - 1);< 42577#$Ultimate##0 ~n := #in~n; 42647#L25 assume ~n <= 0;#res := 1; 42644#factFINAL assume true; 42574#factEXIT >#66#return; 42576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 42417#factFINAL assume true; 42425#factEXIT >#68#return; 42423#L30-1 [2023-02-17 09:41:15,531 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:15,531 INFO L85 PathProgramCache]: Analyzing trace with hash -1617221305, now seen corresponding path program 1 times [2023-02-17 09:41:15,531 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:15,532 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [639609688] [2023-02-17 09:41:15,532 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:15,532 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:15,538 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:15,538 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [321005778] [2023-02-17 09:41:15,538 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:15,538 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:15,539 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:15,540 INFO L229 MonitoredProcess]: Starting monitored process 98 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:15,556 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (98)] Waiting until timeout for monitored process [2023-02-17 09:41:15,623 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:15,623 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:15,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:15,657 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:15,657 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:15,658 INFO L85 PathProgramCache]: Analyzing trace with hash 1290891683, now seen corresponding path program 4 times [2023-02-17 09:41:15,658 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:15,658 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1011489139] [2023-02-17 09:41:15,658 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:15,658 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:15,667 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:15,667 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [940325225] [2023-02-17 09:41:15,667 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:15,667 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:15,668 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:15,669 INFO L229 MonitoredProcess]: Starting monitored process 99 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:15,697 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (99)] Waiting until timeout for monitored process [2023-02-17 09:41:15,781 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:15,782 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:15,783 INFO L263 TraceCheckSpWp]: Trace formula consists of 437 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:41:15,786 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:15,834 INFO L134 CoverageAnalysis]: Checked inductivity of 2507 backedges. 1516 proven. 204 refuted. 0 times theorem prover too weak. 787 trivial. 0 not checked. [2023-02-17 09:41:15,834 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:16,005 INFO L134 CoverageAnalysis]: Checked inductivity of 2507 backedges. 276 proven. 657 refuted. 0 times theorem prover too weak. 1574 trivial. 0 not checked. [2023-02-17 09:41:16,006 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:16,006 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1011489139] [2023-02-17 09:41:16,006 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:16,006 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [940325225] [2023-02-17 09:41:16,006 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [940325225] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:16,006 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:16,007 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 18] total 21 [2023-02-17 09:41:16,007 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2036741693] [2023-02-17 09:41:16,007 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:16,007 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:16,008 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:16,008 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2023-02-17 09:41:16,008 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=347, Unknown=0, NotChecked=0, Total=420 [2023-02-17 09:41:16,008 INFO L87 Difference]: Start difference. First operand 1660 states and 2889 transitions. cyclomatic complexity: 1255 Second operand has 21 states, 18 states have (on average 3.2777777777777777) internal successors, (59), 18 states have internal predecessors, (59), 13 states have call successors, (24), 2 states have call predecessors, (24), 9 states have return successors, (28), 11 states have call predecessors, (28), 13 states have call successors, (28) [2023-02-17 09:41:16,492 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:16,493 INFO L93 Difference]: Finished difference Result 2216 states and 4017 transitions. [2023-02-17 09:41:16,493 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2216 states and 4017 transitions. [2023-02-17 09:41:16,510 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 347 [2023-02-17 09:41:16,533 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2216 states to 2198 states and 3955 transitions. [2023-02-17 09:41:16,533 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 690 [2023-02-17 09:41:16,534 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 690 [2023-02-17 09:41:16,534 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2198 states and 3955 transitions. [2023-02-17 09:41:16,534 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:16,534 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2198 states and 3955 transitions. [2023-02-17 09:41:16,536 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2198 states and 3955 transitions. [2023-02-17 09:41:16,603 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2198 to 1702. [2023-02-17 09:41:16,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1702 states, 1013 states have (on average 1.0612043435340572) internal successors, (1075), 1013 states have internal predecessors, (1075), 476 states have call successors, (501), 197 states have call predecessors, (501), 213 states have return successors, (1629), 491 states have call predecessors, (1629), 476 states have call successors, (1629) [2023-02-17 09:41:16,614 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1702 states to 1702 states and 3205 transitions. [2023-02-17 09:41:16,614 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1702 states and 3205 transitions. [2023-02-17 09:41:16,615 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2023-02-17 09:41:16,615 INFO L428 stractBuchiCegarLoop]: Abstraction has 1702 states and 3205 transitions. [2023-02-17 09:41:16,615 INFO L335 stractBuchiCegarLoop]: ======== Iteration 20 ============ [2023-02-17 09:41:16,615 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1702 states and 3205 transitions. [2023-02-17 09:41:16,623 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 196 [2023-02-17 09:41:16,623 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:16,623 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:16,624 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [10, 10, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:16,625 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [23, 23, 14, 14, 14, 14, 9, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:16,625 INFO L748 eck$LassoCheckResult]: Stem: 47604#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 47550#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 47551#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 47572#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 47605#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 47910#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48725#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47540#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47541#$Ultimate##0 ~n := #in~n; 48729#L25 assume ~n <= 0;#res := 1; 48721#factFINAL assume true; 48708#factEXIT >#68#return; 47590#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47591#$Ultimate##0 ~n := #in~n; 48731#L25 assume ~n <= 0;#res := 1; 48728#factFINAL assume true; 48724#factEXIT >#70#return; 47536#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47537#$Ultimate##0 ~n := #in~n; 48787#L25 assume ~n <= 0;#res := 1; 48786#factFINAL assume true; 48785#factEXIT >#72#return; 47568#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 47569#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 47579#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48958#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48956#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 48952#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 48953#$Ultimate##0 ~n := #in~n; 48966#L25 assume !(~n <= 0); 48961#L26 call #t~ret0 := fact(~n - 1);< 48963#$Ultimate##0 ~n := #in~n; 48967#L25 assume ~n <= 0;#res := 1; 48964#factFINAL assume true; 48959#factEXIT >#66#return; 48957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 48955#factFINAL assume true; 48951#factEXIT >#74#return; 48791#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 48792#$Ultimate##0 ~n := #in~n; 48994#L25 assume ~n <= 0;#res := 1; 48993#factFINAL assume true; 48991#factEXIT >#76#return; 47560#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 48745#$Ultimate##0 ~n := #in~n; 49125#L25 assume !(~n <= 0); 47559#L26 call #t~ret0 := fact(~n - 1);< 47561#$Ultimate##0 ~n := #in~n; 49148#L25 assume ~n <= 0;#res := 1; 49147#factFINAL assume true; 49146#factEXIT >#66#return; 49145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 49144#factFINAL assume true; 49143#factEXIT >#78#return; 49142#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 49141#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 49140#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 47931#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 47928#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 47925#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 47923#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47922#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47878#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47883#$Ultimate##0 ~n := #in~n; 47887#L25 assume !(~n <= 0); 47675#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47702#L25 assume ~n <= 0;#res := 1; 47703#factFINAL assume true; 47673#factEXIT >#66#return; 47680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47936#factFINAL assume true; 47890#factEXIT >#68#return; 47880#L30-1 [2023-02-17 09:41:16,625 INFO L750 eck$LassoCheckResult]: Loop: 47880#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47883#$Ultimate##0 ~n := #in~n; 47887#L25 assume ~n <= 0;#res := 1; 47884#factFINAL assume true; 47875#factEXIT >#70#return; 47882#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47889#$Ultimate##0 ~n := #in~n; 47935#L25 assume !(~n <= 0); 47675#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47702#L25 assume ~n <= 0;#res := 1; 47703#factFINAL assume true; 47673#factEXIT >#66#return; 47680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47936#factFINAL assume true; 47890#factEXIT >#72#return; 47886#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48108#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 48106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48102#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 48103#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47626#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47667#$Ultimate##0 ~n := #in~n; 47711#L25 assume !(~n <= 0); 47676#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47700#L25 assume !(~n <= 0); 47689#L26 call #t~ret0 := fact(~n - 1);< 47770#$Ultimate##0 ~n := #in~n; 47772#L25 assume ~n <= 0;#res := 1; 47771#factFINAL assume true; 47769#factEXIT >#66#return; 47704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47685#factFINAL assume true; 47691#factEXIT >#66#return; 47739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47749#factFINAL assume true; 47747#factEXIT >#68#return; 47621#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47667#$Ultimate##0 ~n := #in~n; 47711#L25 assume !(~n <= 0); 47676#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47702#L25 assume ~n <= 0;#res := 1; 47703#factFINAL assume true; 47673#factEXIT >#66#return; 47672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47664#factFINAL assume true; 47665#factEXIT >#70#return; 47650#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47667#$Ultimate##0 ~n := #in~n; 47711#L25 assume !(~n <= 0); 47676#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47700#L25 assume !(~n <= 0); 47689#L26 call #t~ret0 := fact(~n - 1);< 47770#$Ultimate##0 ~n := #in~n; 47700#L25 assume !(~n <= 0); 47689#L26 call #t~ret0 := fact(~n - 1);< 47770#$Ultimate##0 ~n := #in~n; 47700#L25 assume !(~n <= 0); 47689#L26 call #t~ret0 := fact(~n - 1);< 47770#$Ultimate##0 ~n := #in~n; 47700#L25 assume !(~n <= 0); 47689#L26 call #t~ret0 := fact(~n - 1);< 47770#$Ultimate##0 ~n := #in~n; 47772#L25 assume ~n <= 0;#res := 1; 47771#factFINAL assume true; 47769#factEXIT >#66#return; 47704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47685#factFINAL assume true; 47691#factEXIT >#66#return; 47738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47736#factFINAL assume true; 47732#factEXIT >#66#return; 47731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47728#factFINAL assume true; 47724#factEXIT >#66#return; 47720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47723#factFINAL assume true; 47716#factEXIT >#66#return; 47715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47713#factFINAL assume true; 47712#factEXIT >#72#return; 47662#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 48567#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 48562#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 48547#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47670#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47628#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47666#$Ultimate##0 ~n := #in~n; 47710#L25 assume !(~n <= 0); 47676#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47700#L25 assume !(~n <= 0); 47689#L26 call #t~ret0 := fact(~n - 1);< 47770#$Ultimate##0 ~n := #in~n; 47772#L25 assume ~n <= 0;#res := 1; 47771#factFINAL assume true; 47769#factEXIT >#66#return; 47704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47685#factFINAL assume true; 47691#factEXIT >#66#return; 47739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47749#factFINAL assume true; 47747#factEXIT >#74#return; 47641#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 47666#$Ultimate##0 ~n := #in~n; 47710#L25 assume !(~n <= 0); 47676#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47702#L25 assume ~n <= 0;#res := 1; 47703#factFINAL assume true; 47673#factEXIT >#66#return; 47672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47664#factFINAL assume true; 47665#factEXIT >#76#return; 47624#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 47666#$Ultimate##0 ~n := #in~n; 47710#L25 assume !(~n <= 0); 47676#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47702#L25 assume ~n <= 0;#res := 1; 47703#factFINAL assume true; 47673#factEXIT >#66#return; 47672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47664#factFINAL assume true; 47665#factEXIT >#78#return; 47611#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 47610#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 47609#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 47607#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 47570#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 47562#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 47563#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 47919#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 47881#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 47883#$Ultimate##0 ~n := #in~n; 47887#L25 assume !(~n <= 0); 47675#L26 call #t~ret0 := fact(~n - 1);< 47705#$Ultimate##0 ~n := #in~n; 47702#L25 assume ~n <= 0;#res := 1; 47703#factFINAL assume true; 47673#factEXIT >#66#return; 47680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 47936#factFINAL assume true; 47890#factEXIT >#68#return; 47880#L30-1 [2023-02-17 09:41:16,626 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:16,626 INFO L85 PathProgramCache]: Analyzing trace with hash -1617221305, now seen corresponding path program 2 times [2023-02-17 09:41:16,626 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:16,626 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [24087943] [2023-02-17 09:41:16,626 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:16,626 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:16,631 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:16,631 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1860412736] [2023-02-17 09:41:16,632 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:16,632 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:16,632 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:16,635 INFO L229 MonitoredProcess]: Starting monitored process 100 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:16,636 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (100)] Waiting until timeout for monitored process [2023-02-17 09:41:16,714 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:16,714 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:16,714 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:16,734 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:16,746 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:16,747 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:16,747 INFO L85 PathProgramCache]: Analyzing trace with hash -1576818069, now seen corresponding path program 5 times [2023-02-17 09:41:16,747 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:16,747 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1237558326] [2023-02-17 09:41:16,747 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:16,747 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:16,753 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:16,753 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1402642529] [2023-02-17 09:41:16,754 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:16,754 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:16,754 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:16,765 INFO L229 MonitoredProcess]: Starting monitored process 101 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:16,788 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (101)] Waiting until timeout for monitored process [2023-02-17 09:41:16,863 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 13 check-sat command(s) [2023-02-17 09:41:16,864 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:16,865 INFO L263 TraceCheckSpWp]: Trace formula consists of 274 conjuncts, 11 conjunts are in the unsatisfiable core [2023-02-17 09:41:16,868 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:16,892 INFO L134 CoverageAnalysis]: Checked inductivity of 1211 backedges. 699 proven. 15 refuted. 0 times theorem prover too weak. 497 trivial. 0 not checked. [2023-02-17 09:41:16,892 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:16,955 INFO L134 CoverageAnalysis]: Checked inductivity of 1211 backedges. 105 proven. 90 refuted. 0 times theorem prover too weak. 1016 trivial. 0 not checked. [2023-02-17 09:41:16,955 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:16,956 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1237558326] [2023-02-17 09:41:16,956 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:16,956 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1402642529] [2023-02-17 09:41:16,956 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1402642529] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:16,956 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:16,956 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 12 [2023-02-17 09:41:16,956 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [63500554] [2023-02-17 09:41:16,956 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:16,958 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:16,958 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:16,958 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2023-02-17 09:41:16,958 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=99, Unknown=0, NotChecked=0, Total=132 [2023-02-17 09:41:16,958 INFO L87 Difference]: Start difference. First operand 1702 states and 3205 transitions. cyclomatic complexity: 1529 Second operand has 12 states, 10 states have (on average 4.5) internal successors, (45), 12 states have internal predecessors, (45), 7 states have call successors, (21), 2 states have call predecessors, (21), 4 states have return successors, (21), 8 states have call predecessors, (21), 7 states have call successors, (21) [2023-02-17 09:41:17,198 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:17,198 INFO L93 Difference]: Finished difference Result 1978 states and 4039 transitions. [2023-02-17 09:41:17,198 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 1978 states and 4039 transitions. [2023-02-17 09:41:17,215 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 292 [2023-02-17 09:41:17,250 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 1978 states to 1978 states and 4039 transitions. [2023-02-17 09:41:17,250 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 609 [2023-02-17 09:41:17,251 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 609 [2023-02-17 09:41:17,251 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1978 states and 4039 transitions. [2023-02-17 09:41:17,251 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:17,251 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1978 states and 4039 transitions. [2023-02-17 09:41:17,253 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1978 states and 4039 transitions. [2023-02-17 09:41:17,303 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1978 to 1792. [2023-02-17 09:41:17,317 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1792 states, 1057 states have (on average 1.0586565752128667) internal successors, (1119), 1057 states have internal predecessors, (1119), 520 states have call successors, (545), 197 states have call predecessors, (545), 215 states have return successors, (1889), 537 states have call predecessors, (1889), 520 states have call successors, (1889) [2023-02-17 09:41:17,355 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1792 states to 1792 states and 3553 transitions. [2023-02-17 09:41:17,355 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1792 states and 3553 transitions. [2023-02-17 09:41:17,361 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-17 09:41:17,361 INFO L428 stractBuchiCegarLoop]: Abstraction has 1792 states and 3553 transitions. [2023-02-17 09:41:17,361 INFO L335 stractBuchiCegarLoop]: ======== Iteration 21 ============ [2023-02-17 09:41:17,361 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1792 states and 3553 transitions. [2023-02-17 09:41:17,368 INFO L131 ngComponentsAnalysis]: Automaton has 7 accepting balls. 239 [2023-02-17 09:41:17,368 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:17,368 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:17,369 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [10, 10, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:17,369 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [22, 22, 13, 13, 13, 13, 9, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:17,369 INFO L748 eck$LassoCheckResult]: Stem: 52199#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 52137#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 52138#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 52159#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 52200#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 52568#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53349#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 52130#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 52131#$Ultimate##0 ~n := #in~n; 53426#L25 assume ~n <= 0;#res := 1; 53425#factFINAL assume true; 53419#factEXIT >#68#return; 52184#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 52185#$Ultimate##0 ~n := #in~n; 53444#L25 assume ~n <= 0;#res := 1; 53443#factFINAL assume true; 53442#factEXIT >#70#return; 52126#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 52127#$Ultimate##0 ~n := #in~n; 53477#L25 assume ~n <= 0;#res := 1; 53476#factFINAL assume true; 53475#factEXIT >#72#return; 52154#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 52155#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 52166#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 53615#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 53614#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 53586#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 53587#$Ultimate##0 ~n := #in~n; 53617#L25 assume !(~n <= 0); 53599#L26 call #t~ret0 := fact(~n - 1);< 53602#$Ultimate##0 ~n := #in~n; 53606#L25 assume ~n <= 0;#res := 1; 53605#factFINAL assume true; 53598#factEXIT >#66#return; 53596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53595#factFINAL assume true; 53585#factEXIT >#74#return; 53582#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 53583#$Ultimate##0 ~n := #in~n; 53635#L25 assume ~n <= 0;#res := 1; 53631#factFINAL assume true; 53629#factEXIT >#76#return; 53626#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 53627#$Ultimate##0 ~n := #in~n; 53637#L25 assume !(~n <= 0); 53633#L26 call #t~ret0 := fact(~n - 1);< 53634#$Ultimate##0 ~n := #in~n; 53638#L25 assume ~n <= 0;#res := 1; 53636#factFINAL assume true; 53632#factEXIT >#66#return; 53630#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 53628#factFINAL assume true; 53625#factEXIT >#78#return; 53447#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 53448#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 53216#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 52845#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 52157#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 52158#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 52841#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 52840#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 52374#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 52378#$Ultimate##0 ~n := #in~n; 52382#L25 assume !(~n <= 0); 52306#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52395#L25 assume ~n <= 0;#res := 1; 52391#factFINAL assume true; 52385#factEXIT >#66#return; 52386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52399#factFINAL assume true; 52367#factEXIT >#68#return; 52369#L30-1 [2023-02-17 09:41:17,369 INFO L750 eck$LassoCheckResult]: Loop: 52369#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 52378#$Ultimate##0 ~n := #in~n; 52382#L25 assume ~n <= 0;#res := 1; 52380#factFINAL assume true; 52377#factEXIT >#70#return; 52372#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 52375#$Ultimate##0 ~n := #in~n; 52409#L25 assume !(~n <= 0); 52306#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52395#L25 assume ~n <= 0;#res := 1; 52391#factFINAL assume true; 52385#factEXIT >#66#return; 52386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52399#factFINAL assume true; 52367#factEXIT >#72#return; 52365#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 52364#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 52363#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 52362#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 52361#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 52211#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 52275#$Ultimate##0 ~n := #in~n; 52393#L25 assume !(~n <= 0); 52312#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52354#L25 assume !(~n <= 0); 52304#L26 call #t~ret0 := fact(~n - 1);< 52345#$Ultimate##0 ~n := #in~n; 52354#L25 assume !(~n <= 0); 52304#L26 call #t~ret0 := fact(~n - 1);< 52345#$Ultimate##0 ~n := #in~n; 52354#L25 assume !(~n <= 0); 52304#L26 call #t~ret0 := fact(~n - 1);< 52345#$Ultimate##0 ~n := #in~n; 52353#L25 assume ~n <= 0;#res := 1; 52352#factFINAL assume true; 52344#factEXIT >#66#return; 52342#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52331#factFINAL assume true; 52303#factEXIT >#66#return; 52313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52360#factFINAL assume true; 52355#factEXIT >#66#return; 52349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52347#factFINAL assume true; 52335#factEXIT >#66#return; 52317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52299#factFINAL assume true; 52296#factEXIT >#68#return; 52215#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 52275#$Ultimate##0 ~n := #in~n; 52393#L25 assume !(~n <= 0); 52312#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52354#L25 assume !(~n <= 0); 52304#L26 call #t~ret0 := fact(~n - 1);< 52345#$Ultimate##0 ~n := #in~n; 52353#L25 assume ~n <= 0;#res := 1; 52352#factFINAL assume true; 52344#factEXIT >#66#return; 52342#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52331#factFINAL assume true; 52303#factEXIT >#66#return; 52298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52294#factFINAL assume true; 52209#factEXIT >#70#return; 52223#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 52275#$Ultimate##0 ~n := #in~n; 52393#L25 assume ~n <= 0;#res := 1; 52290#factFINAL assume true; 52283#factEXIT >#72#return; 52287#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 52351#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 52343#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 52334#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 52302#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 52224#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 52271#$Ultimate##0 ~n := #in~n; 52392#L25 assume !(~n <= 0); 52312#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52354#L25 assume !(~n <= 0); 52304#L26 call #t~ret0 := fact(~n - 1);< 52345#$Ultimate##0 ~n := #in~n; 52353#L25 assume ~n <= 0;#res := 1; 52352#factFINAL assume true; 52344#factEXIT >#66#return; 52342#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52331#factFINAL assume true; 52303#factEXIT >#66#return; 52298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52294#factFINAL assume true; 52209#factEXIT >#74#return; 52257#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 52271#$Ultimate##0 ~n := #in~n; 52392#L25 assume !(~n <= 0); 52312#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52354#L25 assume !(~n <= 0); 52304#L26 call #t~ret0 := fact(~n - 1);< 52345#$Ultimate##0 ~n := #in~n; 52353#L25 assume ~n <= 0;#res := 1; 52352#factFINAL assume true; 52344#factEXIT >#66#return; 52342#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52331#factFINAL assume true; 52303#factEXIT >#66#return; 52298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52294#factFINAL assume true; 52209#factEXIT >#76#return; 52214#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 52271#$Ultimate##0 ~n := #in~n; 52392#L25 assume !(~n <= 0); 52312#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52395#L25 assume ~n <= 0;#res := 1; 52391#factFINAL assume true; 52385#factEXIT >#66#return; 52384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52383#factFINAL assume true; 52292#factEXIT >#78#return; 52208#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 52207#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 52206#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 52204#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 52156#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 52149#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 52150#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 52726#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 52370#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 52378#$Ultimate##0 ~n := #in~n; 52382#L25 assume !(~n <= 0); 52306#L26 call #t~ret0 := fact(~n - 1);< 52389#$Ultimate##0 ~n := #in~n; 52395#L25 assume ~n <= 0;#res := 1; 52391#factFINAL assume true; 52385#factEXIT >#66#return; 52386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 52399#factFINAL assume true; 52367#factEXIT >#68#return; 52369#L30-1 [2023-02-17 09:41:17,370 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:17,370 INFO L85 PathProgramCache]: Analyzing trace with hash -1617221305, now seen corresponding path program 3 times [2023-02-17 09:41:17,370 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:17,370 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1284735419] [2023-02-17 09:41:17,370 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:17,370 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:17,375 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:17,375 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [408911927] [2023-02-17 09:41:17,375 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:17,375 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:17,375 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:17,378 INFO L229 MonitoredProcess]: Starting monitored process 102 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:17,379 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (102)] Waiting until timeout for monitored process [2023-02-17 09:41:17,456 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2023-02-17 09:41:17,456 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:17,456 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:17,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:17,483 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:17,483 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:17,484 INFO L85 PathProgramCache]: Analyzing trace with hash 1151948579, now seen corresponding path program 6 times [2023-02-17 09:41:17,484 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:17,484 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1715474408] [2023-02-17 09:41:17,484 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:17,484 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:17,490 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:17,490 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [955504346] [2023-02-17 09:41:17,490 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:17,490 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:17,490 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:17,498 INFO L229 MonitoredProcess]: Starting monitored process 103 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:17,498 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (103)] Waiting until timeout for monitored process [2023-02-17 09:41:17,574 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 9 check-sat command(s) [2023-02-17 09:41:17,574 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:17,575 INFO L263 TraceCheckSpWp]: Trace formula consists of 226 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:41:17,577 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:17,629 INFO L134 CoverageAnalysis]: Checked inductivity of 1097 backedges. 247 proven. 68 refuted. 0 times theorem prover too weak. 782 trivial. 0 not checked. [2023-02-17 09:41:17,630 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:17,778 INFO L134 CoverageAnalysis]: Checked inductivity of 1097 backedges. 251 proven. 66 refuted. 0 times theorem prover too weak. 780 trivial. 0 not checked. [2023-02-17 09:41:17,778 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:17,779 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1715474408] [2023-02-17 09:41:17,779 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:17,779 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [955504346] [2023-02-17 09:41:17,779 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [955504346] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:17,779 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:17,779 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 15] total 20 [2023-02-17 09:41:17,779 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1818263362] [2023-02-17 09:41:17,779 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:17,780 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:17,780 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:17,780 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2023-02-17 09:41:17,781 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=356, Unknown=0, NotChecked=0, Total=420 [2023-02-17 09:41:17,781 INFO L87 Difference]: Start difference. First operand 1792 states and 3553 transitions. cyclomatic complexity: 1787 Second operand has 21 states, 17 states have (on average 2.9411764705882355) internal successors, (50), 20 states have internal predecessors, (50), 12 states have call successors, (19), 1 states have call predecessors, (19), 5 states have return successors, (19), 8 states have call predecessors, (19), 12 states have call successors, (19) [2023-02-17 09:41:18,657 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:18,658 INFO L93 Difference]: Finished difference Result 2304 states and 4653 transitions. [2023-02-17 09:41:18,658 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2304 states and 4653 transitions. [2023-02-17 09:41:18,710 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 354 [2023-02-17 09:41:18,728 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2304 states to 1973 states and 3773 transitions. [2023-02-17 09:41:18,728 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 752 [2023-02-17 09:41:18,729 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 756 [2023-02-17 09:41:18,729 INFO L73 IsDeterministic]: Start isDeterministic. Operand 1973 states and 3773 transitions. [2023-02-17 09:41:18,730 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:18,730 INFO L218 hiAutomatonCegarLoop]: Abstraction has 1973 states and 3773 transitions. [2023-02-17 09:41:18,731 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1973 states and 3773 transitions. [2023-02-17 09:41:18,773 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1973 to 1776. [2023-02-17 09:41:18,775 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1776 states, 1062 states have (on average 1.0621468926553672) internal successors, (1128), 1060 states have internal predecessors, (1128), 509 states have call successors, (534), 187 states have call predecessors, (534), 205 states have return successors, (1817), 528 states have call predecessors, (1817), 509 states have call successors, (1817) [2023-02-17 09:41:18,783 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1776 states to 1776 states and 3479 transitions. [2023-02-17 09:41:18,783 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1776 states and 3479 transitions. [2023-02-17 09:41:18,784 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2023-02-17 09:41:18,784 INFO L428 stractBuchiCegarLoop]: Abstraction has 1776 states and 3479 transitions. [2023-02-17 09:41:18,784 INFO L335 stractBuchiCegarLoop]: ======== Iteration 22 ============ [2023-02-17 09:41:18,784 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1776 states and 3479 transitions. [2023-02-17 09:41:18,791 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 307 [2023-02-17 09:41:18,791 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:18,791 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:18,792 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [13, 13, 9, 4, 4, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:18,792 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [14, 14, 11, 11, 11, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:18,792 INFO L748 eck$LassoCheckResult]: Stem: 57225#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 57156#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 57157#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 57178#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 57226#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 57450#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57998#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 57145#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 57146#$Ultimate##0 ~n := #in~n; 58056#L25 assume ~n <= 0;#res := 1; 58054#factFINAL assume true; 58052#factEXIT >#68#return; 57200#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 57201#$Ultimate##0 ~n := #in~n; 57964#L25 assume ~n <= 0;#res := 1; 57963#factFINAL assume true; 57962#factEXIT >#70#return; 57141#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57142#$Ultimate##0 ~n := #in~n; 58216#L25 assume ~n <= 0;#res := 1; 58215#factFINAL assume true; 58214#factEXIT >#72#return; 58213#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 58172#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 58169#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 58167#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 58161#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 58158#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 58159#$Ultimate##0 ~n := #in~n; 58188#L25 assume !(~n <= 0); 58163#L26 call #t~ret0 := fact(~n - 1);< 58166#$Ultimate##0 ~n := #in~n; 58182#L25 assume ~n <= 0;#res := 1; 58180#factFINAL assume true; 58162#factEXIT >#66#return; 58165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58177#factFINAL assume true; 58157#factEXIT >#74#return; 58148#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 58149#$Ultimate##0 ~n := #in~n; 58173#L25 assume ~n <= 0;#res := 1; 58152#factFINAL assume true; 58147#factEXIT >#76#return; 58141#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 58142#$Ultimate##0 ~n := #in~n; 58189#L25 assume !(~n <= 0); 58164#L26 call #t~ret0 := fact(~n - 1);< 58166#$Ultimate##0 ~n := #in~n; 58182#L25 assume ~n <= 0;#res := 1; 58180#factFINAL assume true; 58162#factEXIT >#66#return; 58160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58154#factFINAL assume true; 58140#factEXIT >#78#return; 58116#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 58115#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 58114#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 58113#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 58112#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 58082#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 58084#$Ultimate##0 ~n := #in~n; 58111#L25 assume !(~n <= 0); 58101#L26 call #t~ret0 := fact(~n - 1);< 58109#$Ultimate##0 ~n := #in~n; 58238#L25 assume ~n <= 0;#res := 1; 58237#factFINAL assume true; 58235#factEXIT >#66#return; 58229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58230#factFINAL assume true; 58117#factEXIT >#74#return; 58078#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 58066#$Ultimate##0 ~n := #in~n; 58095#L25 assume ~n <= 0;#res := 1; 58076#factFINAL assume true; 58079#factEXIT >#76#return; 58073#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 58074#$Ultimate##0 ~n := #in~n; 58248#L25 assume !(~n <= 0); 57982#L26 call #t~ret0 := fact(~n - 1);< 57163#$Ultimate##0 ~n := #in~n; 58290#L25 assume ~n <= 0;#res := 1; 58286#factFINAL assume true; 58246#factEXIT >#66#return; 58233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58234#factFINAL assume true; 58085#factEXIT >#78#return; 57959#L30-8 [2023-02-17 09:41:18,793 INFO L750 eck$LassoCheckResult]: Loop: 57959#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 57969#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 57968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 57967#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 57965#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 57130#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 57131#$Ultimate##0 ~n := #in~n; 58153#L25 assume !(~n <= 0); 57162#L26 call #t~ret0 := fact(~n - 1);< 57163#$Ultimate##0 ~n := #in~n; 58036#L25 assume !(~n <= 0); 57980#L26 call #t~ret0 := fact(~n - 1);< 58035#$Ultimate##0 ~n := #in~n; 58036#L25 assume !(~n <= 0); 57980#L26 call #t~ret0 := fact(~n - 1);< 58035#$Ultimate##0 ~n := #in~n; 58036#L25 assume !(~n <= 0); 57980#L26 call #t~ret0 := fact(~n - 1);< 58035#$Ultimate##0 ~n := #in~n; 58036#L25 assume !(~n <= 0); 57980#L26 call #t~ret0 := fact(~n - 1);< 58035#$Ultimate##0 ~n := #in~n; 58036#L25 assume !(~n <= 0); 57980#L26 call #t~ret0 := fact(~n - 1);< 58035#$Ultimate##0 ~n := #in~n; 58038#L25 assume ~n <= 0;#res := 1; 58037#factFINAL assume true; 58034#factEXIT >#66#return; 58033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58023#factFINAL assume true; 58018#factEXIT >#66#return; 58017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58015#factFINAL assume true; 58010#factEXIT >#66#return; 58009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58006#factFINAL assume true; 58005#factEXIT >#66#return; 58004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57991#factFINAL assume true; 57978#factEXIT >#66#return; 57987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58058#factFINAL assume true; 58057#factEXIT >#66#return; 58055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58053#factFINAL assume true; 57957#factEXIT >#74#return; 57221#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 57222#$Ultimate##0 ~n := #in~n; 57977#L25 assume ~n <= 0;#res := 1; 57975#factFINAL assume true; 57972#factEXIT >#76#return; 57958#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 57971#$Ultimate##0 ~n := #in~n; 57990#L25 assume !(~n <= 0); 57985#L26 call #t~ret0 := fact(~n - 1);< 57989#$Ultimate##0 ~n := #in~n; 58069#L25 assume !(~n <= 0); 57986#L26 call #t~ret0 := fact(~n - 1);< 57992#$Ultimate##0 ~n := #in~n; 58061#L25 assume !(~n <= 0); 57979#L26 call #t~ret0 := fact(~n - 1);< 58011#$Ultimate##0 ~n := #in~n; 58250#L25 assume !(~n <= 0); 57984#L26 call #t~ret0 := fact(~n - 1);< 58020#$Ultimate##0 ~n := #in~n; 58036#L25 assume !(~n <= 0); 57980#L26 call #t~ret0 := fact(~n - 1);< 58035#$Ultimate##0 ~n := #in~n; 58038#L25 assume ~n <= 0;#res := 1; 58037#factFINAL assume true; 58034#factEXIT >#66#return; 58033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58023#factFINAL assume true; 58018#factEXIT >#66#return; 58017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58015#factFINAL assume true; 58010#factEXIT >#66#return; 58009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 58006#factFINAL assume true; 58005#factEXIT >#66#return; 58004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57991#factFINAL assume true; 57978#factEXIT >#66#return; 57976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 57974#factFINAL assume true; 57973#factEXIT >#78#return; 57959#L30-8 [2023-02-17 09:41:18,793 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:18,793 INFO L85 PathProgramCache]: Analyzing trace with hash 1573688374, now seen corresponding path program 2 times [2023-02-17 09:41:18,793 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:18,794 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [634131882] [2023-02-17 09:41:18,794 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:18,794 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:18,799 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:18,799 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1655145139] [2023-02-17 09:41:18,799 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:18,799 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:18,800 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:18,805 INFO L229 MonitoredProcess]: Starting monitored process 104 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:18,821 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (104)] Waiting until timeout for monitored process [2023-02-17 09:41:18,893 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:18,893 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:18,894 INFO L263 TraceCheckSpWp]: Trace formula consists of 211 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-17 09:41:18,895 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:18,916 INFO L134 CoverageAnalysis]: Checked inductivity of 334 backedges. 187 proven. 3 refuted. 0 times theorem prover too weak. 144 trivial. 0 not checked. [2023-02-17 09:41:18,916 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:18,952 INFO L134 CoverageAnalysis]: Checked inductivity of 334 backedges. 61 proven. 24 refuted. 0 times theorem prover too weak. 249 trivial. 0 not checked. [2023-02-17 09:41:18,953 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:18,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [634131882] [2023-02-17 09:41:18,953 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:18,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1655145139] [2023-02-17 09:41:18,953 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1655145139] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:18,953 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:18,953 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 11 [2023-02-17 09:41:18,953 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [796102643] [2023-02-17 09:41:18,953 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:18,954 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:18,954 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:18,954 INFO L85 PathProgramCache]: Analyzing trace with hash 856888444, now seen corresponding path program 8 times [2023-02-17 09:41:18,954 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:18,954 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1048827794] [2023-02-17 09:41:18,954 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:18,954 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:18,964 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:18,965 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [210578504] [2023-02-17 09:41:18,965 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:18,965 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:18,965 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:18,971 INFO L229 MonitoredProcess]: Starting monitored process 105 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:18,972 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (105)] Waiting until timeout for monitored process [2023-02-17 09:41:19,047 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:19,048 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:19,049 INFO L263 TraceCheckSpWp]: Trace formula consists of 185 conjuncts, 29 conjunts are in the unsatisfiable core [2023-02-17 09:41:19,051 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:19,141 INFO L134 CoverageAnalysis]: Checked inductivity of 474 backedges. 78 proven. 247 refuted. 0 times theorem prover too weak. 149 trivial. 0 not checked. [2023-02-17 09:41:19,141 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:19,541 INFO L134 CoverageAnalysis]: Checked inductivity of 474 backedges. 78 proven. 302 refuted. 0 times theorem prover too weak. 94 trivial. 0 not checked. [2023-02-17 09:41:19,541 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:19,542 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1048827794] [2023-02-17 09:41:19,542 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:19,542 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [210578504] [2023-02-17 09:41:19,542 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [210578504] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:19,542 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:19,542 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 27] total 30 [2023-02-17 09:41:19,542 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1186187330] [2023-02-17 09:41:19,543 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:19,543 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:19,543 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:19,543 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-17 09:41:19,544 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=145, Invalid=785, Unknown=0, NotChecked=0, Total=930 [2023-02-17 09:41:19,544 INFO L87 Difference]: Start difference. First operand 1776 states and 3479 transitions. cyclomatic complexity: 1737 Second operand has 31 states, 27 states have (on average 2.259259259259259) internal successors, (61), 27 states have internal predecessors, (61), 17 states have call successors, (17), 1 states have call predecessors, (17), 13 states have return successors, (26), 15 states have call predecessors, (26), 17 states have call successors, (26) [2023-02-17 09:41:20,615 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:20,615 INFO L93 Difference]: Finished difference Result 2622 states and 5340 transitions. [2023-02-17 09:41:20,615 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2622 states and 5340 transitions. [2023-02-17 09:41:20,633 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 582 [2023-02-17 09:41:20,657 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2622 states to 2612 states and 5330 transitions. [2023-02-17 09:41:20,657 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1005 [2023-02-17 09:41:20,658 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1005 [2023-02-17 09:41:20,659 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2612 states and 5330 transitions. [2023-02-17 09:41:20,660 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:20,660 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2612 states and 5330 transitions. [2023-02-17 09:41:20,662 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2612 states and 5330 transitions. [2023-02-17 09:41:20,720 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2612 to 1868. [2023-02-17 09:41:20,722 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 1868 states, 1100 states have (on average 1.06) internal successors, (1166), 1096 states have internal predecessors, (1166), 559 states have call successors, (584), 203 states have call predecessors, (584), 209 states have return successors, (2249), 568 states have call predecessors, (2249), 559 states have call successors, (2249) [2023-02-17 09:41:20,732 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 1868 states to 1868 states and 3999 transitions. [2023-02-17 09:41:20,732 INFO L240 hiAutomatonCegarLoop]: Abstraction has 1868 states and 3999 transitions. [2023-02-17 09:41:20,733 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2023-02-17 09:41:20,733 INFO L428 stractBuchiCegarLoop]: Abstraction has 1868 states and 3999 transitions. [2023-02-17 09:41:20,733 INFO L335 stractBuchiCegarLoop]: ======== Iteration 23 ============ [2023-02-17 09:41:20,733 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 1868 states and 3999 transitions. [2023-02-17 09:41:20,755 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 328 [2023-02-17 09:41:20,756 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:20,756 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:20,756 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [13, 13, 9, 4, 4, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:20,756 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [15, 15, 12, 12, 12, 12, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:20,757 INFO L748 eck$LassoCheckResult]: Stem: 62715#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 62654#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 62655#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 62677#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 62716#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 62863#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 63933#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62650#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62651#$Ultimate##0 ~n := #in~n; 62693#L25 assume ~n <= 0;#res := 1; 62694#factFINAL assume true; 64221#factEXIT >#68#return; 62700#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62701#$Ultimate##0 ~n := #in~n; 63999#L25 assume ~n <= 0;#res := 1; 63998#factFINAL assume true; 63994#factEXIT >#70#return; 62636#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 62642#$Ultimate##0 ~n := #in~n; 64296#L25 assume ~n <= 0;#res := 1; 64295#factFINAL assume true; 62635#factEXIT >#72#return; 62637#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 64262#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 64257#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 64243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 64241#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62633#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62634#$Ultimate##0 ~n := #in~n; 64322#L25 assume !(~n <= 0); 64317#L26 call #t~ret0 := fact(~n - 1);< 64319#$Ultimate##0 ~n := #in~n; 64323#L25 assume ~n <= 0;#res := 1; 64321#factFINAL assume true; 64315#factEXIT >#66#return; 64318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64332#factFINAL assume true; 64297#factEXIT >#74#return; 64218#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64219#$Ultimate##0 ~n := #in~n; 64325#L25 assume ~n <= 0;#res := 1; 64220#factFINAL assume true; 64217#factEXIT >#76#return; 64215#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 64216#$Ultimate##0 ~n := #in~n; 64320#L25 assume !(~n <= 0); 64316#L26 call #t~ret0 := fact(~n - 1);< 64319#$Ultimate##0 ~n := #in~n; 64323#L25 assume ~n <= 0;#res := 1; 64321#factFINAL assume true; 64315#factEXIT >#66#return; 64313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64311#factFINAL assume true; 64214#factEXIT >#78#return; 64213#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 64212#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 64210#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 64209#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 64150#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 64142#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 64144#$Ultimate##0 ~n := #in~n; 64173#L25 assume !(~n <= 0); 64167#L26 call #t~ret0 := fact(~n - 1);< 64171#$Ultimate##0 ~n := #in~n; 64274#L25 assume ~n <= 0;#res := 1; 64271#factFINAL assume true; 64193#factEXIT >#66#return; 64195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64148#factFINAL assume true; 64149#factEXIT >#74#return; 62707#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 64128#$Ultimate##0 ~n := #in~n; 64147#L25 assume ~n <= 0;#res := 1; 64136#factFINAL assume true; 64137#factEXIT >#76#return; 64145#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 64146#$Ultimate##0 ~n := #in~n; 64206#L25 assume !(~n <= 0); 64088#L26 call #t~ret0 := fact(~n - 1);< 64135#$Ultimate##0 ~n := #in~n; 64231#L25 assume ~n <= 0;#res := 1; 64227#factFINAL assume true; 64203#factEXIT >#66#return; 64204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64308#factFINAL assume true; 64199#factEXIT >#78#return; 64070#L30-8 [2023-02-17 09:41:20,757 INFO L750 eck$LassoCheckResult]: Loop: 64070#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 64069#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 64060#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 64059#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 64058#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 62631#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 62632#$Ultimate##0 ~n := #in~n; 64098#L25 assume !(~n <= 0); 64085#L26 call #t~ret0 := fact(~n - 1);< 64135#$Ultimate##0 ~n := #in~n; 64131#L25 assume !(~n <= 0); 64082#L26 call #t~ret0 := fact(~n - 1);< 64122#$Ultimate##0 ~n := #in~n; 64131#L25 assume !(~n <= 0); 64082#L26 call #t~ret0 := fact(~n - 1);< 64122#$Ultimate##0 ~n := #in~n; 64131#L25 assume !(~n <= 0); 64082#L26 call #t~ret0 := fact(~n - 1);< 64122#$Ultimate##0 ~n := #in~n; 64131#L25 assume !(~n <= 0); 64082#L26 call #t~ret0 := fact(~n - 1);< 64122#$Ultimate##0 ~n := #in~n; 64131#L25 assume !(~n <= 0); 64082#L26 call #t~ret0 := fact(~n - 1);< 64122#$Ultimate##0 ~n := #in~n; 64130#L25 assume ~n <= 0;#res := 1; 64124#factFINAL assume true; 64121#factEXIT >#66#return; 64119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64116#factFINAL assume true; 64113#factEXIT >#66#return; 64112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64111#factFINAL assume true; 64109#factEXIT >#66#return; 64108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64105#factFINAL assume true; 64103#factEXIT >#66#return; 64102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64101#factFINAL assume true; 64100#factEXIT >#66#return; 64089#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64096#factFINAL assume true; 64078#factEXIT >#66#return; 64076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64074#factFINAL assume true; 64072#factEXIT >#74#return; 62711#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 62712#$Ultimate##0 ~n := #in~n; 64094#L25 assume ~n <= 0;#res := 1; 64093#factFINAL assume true; 64077#factEXIT >#76#return; 64073#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 64075#$Ultimate##0 ~n := #in~n; 64099#L25 assume !(~n <= 0); 64080#L26 call #t~ret0 := fact(~n - 1);< 64092#$Ultimate##0 ~n := #in~n; 64290#L25 assume !(~n <= 0); 64081#L26 call #t~ret0 := fact(~n - 1);< 64097#$Ultimate##0 ~n := #in~n; 64338#L25 assume !(~n <= 0); 64083#L26 call #t~ret0 := fact(~n - 1);< 64104#$Ultimate##0 ~n := #in~n; 64132#L25 assume !(~n <= 0); 64084#L26 call #t~ret0 := fact(~n - 1);< 64110#$Ultimate##0 ~n := #in~n; 64133#L25 assume !(~n <= 0); 64079#L26 call #t~ret0 := fact(~n - 1);< 64115#$Ultimate##0 ~n := #in~n; 64131#L25 assume !(~n <= 0); 64082#L26 call #t~ret0 := fact(~n - 1);< 64122#$Ultimate##0 ~n := #in~n; 64130#L25 assume ~n <= 0;#res := 1; 64124#factFINAL assume true; 64121#factEXIT >#66#return; 64119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64116#factFINAL assume true; 64113#factEXIT >#66#return; 64112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64111#factFINAL assume true; 64109#factEXIT >#66#return; 64108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64105#factFINAL assume true; 64103#factEXIT >#66#return; 64102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64101#factFINAL assume true; 64100#factEXIT >#66#return; 64089#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64096#factFINAL assume true; 64078#factEXIT >#66#return; 64076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 64074#factFINAL assume true; 64072#factEXIT >#78#return; 64070#L30-8 [2023-02-17 09:41:20,757 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:20,758 INFO L85 PathProgramCache]: Analyzing trace with hash 1573688374, now seen corresponding path program 3 times [2023-02-17 09:41:20,758 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:20,758 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [535690289] [2023-02-17 09:41:20,758 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:20,758 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:20,764 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:20,764 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1807008699] [2023-02-17 09:41:20,764 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:20,764 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:20,764 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:20,772 INFO L229 MonitoredProcess]: Starting monitored process 106 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:20,788 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (106)] Waiting until timeout for monitored process [2023-02-17 09:41:20,870 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2023-02-17 09:41:20,870 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:20,871 INFO L263 TraceCheckSpWp]: Trace formula consists of 153 conjuncts, 11 conjunts are in the unsatisfiable core [2023-02-17 09:41:20,872 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:20,891 INFO L134 CoverageAnalysis]: Checked inductivity of 334 backedges. 77 proven. 5 refuted. 0 times theorem prover too weak. 252 trivial. 0 not checked. [2023-02-17 09:41:20,892 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:20,929 INFO L134 CoverageAnalysis]: Checked inductivity of 334 backedges. 77 proven. 6 refuted. 0 times theorem prover too weak. 251 trivial. 0 not checked. [2023-02-17 09:41:20,929 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:20,929 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [535690289] [2023-02-17 09:41:20,929 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:20,930 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1807008699] [2023-02-17 09:41:20,930 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1807008699] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:20,930 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:20,930 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 8] total 9 [2023-02-17 09:41:20,930 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [995538473] [2023-02-17 09:41:20,930 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:20,931 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:20,931 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:20,931 INFO L85 PathProgramCache]: Analyzing trace with hash 2078612212, now seen corresponding path program 9 times [2023-02-17 09:41:20,931 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:20,931 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1291837791] [2023-02-17 09:41:20,931 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:20,932 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:20,935 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:20,935 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1196660744] [2023-02-17 09:41:20,935 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:20,936 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:20,936 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:20,945 INFO L229 MonitoredProcess]: Starting monitored process 107 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:20,963 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (107)] Waiting until timeout for monitored process [2023-02-17 09:41:21,053 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 19 check-sat command(s) [2023-02-17 09:41:21,053 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:21,053 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:21,074 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:21,086 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:21,131 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:21,131 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:21,131 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:21,131 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:21,132 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:21,132 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,132 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:21,132 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:21,132 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration23_Loop [2023-02-17 09:41:21,132 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:21,132 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:21,134 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,134 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,137 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,138 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,140 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,144 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:21,144 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:21,144 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,144 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,151 INFO L229 MonitoredProcess]: Starting monitored process 108 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,152 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (108)] Waiting until timeout for monitored process [2023-02-17 09:41:21,153 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:21,153 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:21,179 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:21,180 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=1} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=1} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:21,183 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (108)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:21,183 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,184 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,185 INFO L229 MonitoredProcess]: Starting monitored process 109 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,193 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:21,193 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:21,202 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (109)] Waiting until timeout for monitored process [2023-02-17 09:41:21,218 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:21,218 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~ret10#1=0} Honda state: {ULTIMATE.start_main_#t~ret10#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:21,221 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (109)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:21,221 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,221 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,222 INFO L229 MonitoredProcess]: Starting monitored process 110 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,222 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (110)] Waiting until timeout for monitored process [2023-02-17 09:41:21,226 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:21,226 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:21,232 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:21,233 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post8#1=0} Honda state: {ULTIMATE.start_main_#t~post8#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:21,235 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (110)] Ended with exit code 0 [2023-02-17 09:41:21,235 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,235 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,236 INFO L229 MonitoredProcess]: Starting monitored process 111 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,237 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (111)] Waiting until timeout for monitored process [2023-02-17 09:41:21,239 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:21,239 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:21,274 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (111)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:21,274 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,274 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,275 INFO L229 MonitoredProcess]: Starting monitored process 112 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,276 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (112)] Waiting until timeout for monitored process [2023-02-17 09:41:21,279 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:21,279 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:21,292 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:21,295 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (112)] Ended with exit code 0 [2023-02-17 09:41:21,295 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:21,295 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:21,295 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:21,295 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:21,295 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:21,295 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,295 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:21,295 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:21,295 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration23_Loop [2023-02-17 09:41:21,295 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:21,295 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:21,296 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,300 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,305 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,306 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,306 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:21,308 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:21,308 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:21,309 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,309 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,310 INFO L229 MonitoredProcess]: Starting monitored process 113 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,311 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (113)] Waiting until timeout for monitored process [2023-02-17 09:41:21,313 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:21,318 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:21,319 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:21,319 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:21,319 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:21,319 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:21,319 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:21,320 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:21,321 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:21,323 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (113)] Ended with exit code 0 [2023-02-17 09:41:21,323 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,323 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,324 INFO L229 MonitoredProcess]: Starting monitored process 114 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,326 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (114)] Waiting until timeout for monitored process [2023-02-17 09:41:21,327 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:21,333 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:21,333 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:21,333 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:21,333 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:21,333 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:21,336 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:21,336 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:21,341 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:21,344 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:21,344 INFO L444 ModelExtractionUtils]: 8 out of 11 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-17 09:41:21,344 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:21,344 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:21,347 INFO L229 MonitoredProcess]: Starting monitored process 115 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:21,347 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (115)] Waiting until timeout for monitored process [2023-02-17 09:41:21,348 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:21,348 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:21,348 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:21,348 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~k~0#1) = -2*ULTIMATE.start_main_~k~0#1 + 11 Supporting invariants [] [2023-02-17 09:41:21,352 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (114)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:21,354 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:21,362 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:21,432 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:21,434 INFO L263 TraceCheckSpWp]: Trace formula consists of 575 conjuncts, 28 conjunts are in the unsatisfiable core [2023-02-17 09:41:21,436 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:21,547 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:21,551 INFO L263 TraceCheckSpWp]: Trace formula consists of 617 conjuncts, 50 conjunts are in the unsatisfiable core [2023-02-17 09:41:21,554 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:21,704 INFO L134 CoverageAnalysis]: Checked inductivity of 552 backedges. 0 proven. 297 refuted. 0 times theorem prover too weak. 255 trivial. 0 not checked. [2023-02-17 09:41:21,704 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 13 loop predicates [2023-02-17 09:41:21,705 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 1868 states and 3999 transitions. cyclomatic complexity: 2165 Second operand has 16 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 6 states have call successors, (12), 2 states have call predecessors, (12), 9 states have return successors, (18), 11 states have call predecessors, (18), 6 states have call successors, (18) [2023-02-17 09:41:21,985 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 1868 states and 3999 transitions. cyclomatic complexity: 2165. Second operand has 16 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 6 states have call successors, (12), 2 states have call predecessors, (12), 9 states have return successors, (18), 11 states have call predecessors, (18), 6 states have call successors, (18) Result 3440 states and 6447 transitions. Complement of second has 69 states. [2023-02-17 09:41:21,986 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 15 states 2 stem states 12 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:21,986 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 6 states have call successors, (12), 2 states have call predecessors, (12), 9 states have return successors, (18), 11 states have call predecessors, (18), 6 states have call successors, (18) [2023-02-17 09:41:21,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 91 transitions. [2023-02-17 09:41:21,987 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 15 states and 91 transitions. Stem has 86 letters. Loop has 92 letters. [2023-02-17 09:41:21,987 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:21,987 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 15 states and 91 transitions. Stem has 178 letters. Loop has 92 letters. [2023-02-17 09:41:21,988 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:21,988 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 15 states and 91 transitions. Stem has 86 letters. Loop has 184 letters. [2023-02-17 09:41:21,989 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:21,989 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3440 states and 6447 transitions. [2023-02-17 09:41:22,016 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 328 [2023-02-17 09:41:22,043 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3440 states to 2519 states and 5059 transitions. [2023-02-17 09:41:22,043 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 730 [2023-02-17 09:41:22,044 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 733 [2023-02-17 09:41:22,045 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2519 states and 5059 transitions. [2023-02-17 09:41:22,045 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:22,045 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2519 states and 5059 transitions. [2023-02-17 09:41:22,047 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2519 states and 5059 transitions. [2023-02-17 09:41:22,125 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (115)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:22,136 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2519 to 2244. [2023-02-17 09:41:22,140 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2244 states, 1340 states have (on average 1.0522388059701493) internal successors, (1410), 1336 states have internal predecessors, (1410), 623 states have call successors, (660), 257 states have call predecessors, (660), 281 states have return successors, (2523), 650 states have call predecessors, (2523), 623 states have call successors, (2523) [2023-02-17 09:41:22,151 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2244 states to 2244 states and 4593 transitions. [2023-02-17 09:41:22,151 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2244 states and 4593 transitions. [2023-02-17 09:41:22,151 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:22,152 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2023-02-17 09:41:22,152 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2023-02-17 09:41:22,152 INFO L87 Difference]: Start difference. First operand 2244 states and 4593 transitions. Second operand has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 5 states have call successors, (12), 1 states have call predecessors, (12), 3 states have return successors, (12), 5 states have call predecessors, (12), 5 states have call successors, (12) [2023-02-17 09:41:22,296 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:22,296 INFO L93 Difference]: Finished difference Result 2214 states and 4415 transitions. [2023-02-17 09:41:22,296 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2214 states and 4415 transitions. [2023-02-17 09:41:22,315 INFO L131 ngComponentsAnalysis]: Automaton has 12 accepting balls. 294 [2023-02-17 09:41:22,335 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2214 states to 2160 states and 4361 transitions. [2023-02-17 09:41:22,335 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 680 [2023-02-17 09:41:22,337 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 680 [2023-02-17 09:41:22,338 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2160 states and 4361 transitions. [2023-02-17 09:41:22,338 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:22,338 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2160 states and 4361 transitions. [2023-02-17 09:41:22,340 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2160 states and 4361 transitions. [2023-02-17 09:41:22,393 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2160 to 2074. [2023-02-17 09:41:22,396 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2074 states, 1245 states have (on average 1.036144578313253) internal successors, (1290), 1240 states have internal predecessors, (1290), 566 states have call successors, (603), 241 states have call predecessors, (603), 263 states have return successors, (2267), 592 states have call predecessors, (2267), 566 states have call successors, (2267) [2023-02-17 09:41:22,406 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2074 states to 2074 states and 4160 transitions. [2023-02-17 09:41:22,406 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2074 states and 4160 transitions. [2023-02-17 09:41:22,406 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-17 09:41:22,407 INFO L428 stractBuchiCegarLoop]: Abstraction has 2074 states and 4160 transitions. [2023-02-17 09:41:22,407 INFO L335 stractBuchiCegarLoop]: ======== Iteration 24 ============ [2023-02-17 09:41:22,407 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2074 states and 4160 transitions. [2023-02-17 09:41:22,415 INFO L131 ngComponentsAnalysis]: Automaton has 11 accepting balls. 274 [2023-02-17 09:41:22,415 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:22,415 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:22,417 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [14, 14, 9, 5, 5, 5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:22,417 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [17, 17, 14, 14, 14, 14, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:22,418 INFO L748 eck$LassoCheckResult]: Stem: 73660#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 73608#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 73609#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 73630#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 73661#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 74022#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 74417#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 73587#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 73588#$Ultimate##0 ~n := #in~n; 74466#L25 assume ~n <= 0;#res := 1; 74465#factFINAL assume true; 74462#factEXIT >#68#return; 73649#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 73650#$Ultimate##0 ~n := #in~n; 74421#L25 assume ~n <= 0;#res := 1; 74420#factFINAL assume true; 74409#factEXIT >#70#return; 73583#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 73584#$Ultimate##0 ~n := #in~n; 74722#L25 assume ~n <= 0;#res := 1; 74721#factFINAL assume true; 74716#factEXIT >#72#return; 74715#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 74713#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 74711#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 74709#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 74706#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 74680#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 74681#$Ultimate##0 ~n := #in~n; 74694#L25 assume !(~n <= 0); 74691#L26 call #t~ret0 := fact(~n - 1);< 74693#$Ultimate##0 ~n := #in~n; 74708#L25 assume ~n <= 0;#res := 1; 74705#factFINAL assume true; 74689#factEXIT >#66#return; 74687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74685#factFINAL assume true; 74679#factEXIT >#74#return; 74676#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 74677#$Ultimate##0 ~n := #in~n; 74703#L25 assume ~n <= 0;#res := 1; 74702#factFINAL assume true; 74675#factEXIT >#76#return; 74669#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 74670#$Ultimate##0 ~n := #in~n; 74701#L25 assume !(~n <= 0); 74690#L26 call #t~ret0 := fact(~n - 1);< 74693#$Ultimate##0 ~n := #in~n; 74708#L25 assume ~n <= 0;#res := 1; 74705#factFINAL assume true; 74689#factEXIT >#66#return; 74692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74696#factFINAL assume true; 74668#factEXIT >#78#return; 74665#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 74662#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 74658#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 74629#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 74630#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 74624#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 74626#$Ultimate##0 ~n := #in~n; 74641#L25 assume !(~n <= 0); 74637#L26 call #t~ret0 := fact(~n - 1);< 74640#$Ultimate##0 ~n := #in~n; 74682#L25 assume ~n <= 0;#res := 1; 74678#factFINAL assume true; 74636#factEXIT >#66#return; 74639#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74704#factFINAL assume true; 74697#factEXIT >#74#return; 74614#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 74619#$Ultimate##0 ~n := #in~n; 74827#L25 assume ~n <= 0;#res := 1; 74826#factFINAL assume true; 74823#factEXIT >#76#return; 74810#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 74822#$Ultimate##0 ~n := #in~n; 74861#L25 assume !(~n <= 0); 74449#L26 call #t~ret0 := fact(~n - 1);< 74459#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74920#L25 assume ~n <= 0;#res := 1; 73591#factFINAL assume true; 73593#factEXIT >#66#return; 74812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74809#factFINAL assume true; 74491#factEXIT >#66#return; 74492#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74825#factFINAL assume true; 74824#factEXIT >#78#return; 73610#L30-8 [2023-02-17 09:41:22,418 INFO L750 eck$LassoCheckResult]: Loop: 73610#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 73611#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 73631#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 74479#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 74476#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 73572#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 73573#$Ultimate##0 ~n := #in~n; 74468#L25 assume !(~n <= 0); 74451#L26 call #t~ret0 := fact(~n - 1);< 74459#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74920#L25 assume ~n <= 0;#res := 1; 73591#factFINAL assume true; 73593#factEXIT >#66#return; 74812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74809#factFINAL assume true; 74491#factEXIT >#66#return; 74490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74489#factFINAL assume true; 74487#factEXIT >#66#return; 74486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74483#factFINAL assume true; 74480#factEXIT >#66#return; 74477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74474#factFINAL assume true; 74471#factEXIT >#66#return; 74470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74467#factFINAL assume true; 74463#factEXIT >#66#return; 74456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74460#factFINAL assume true; 74447#factEXIT >#66#return; 74445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74440#factFINAL assume true; 74436#factEXIT >#74#return; 73656#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 73657#$Ultimate##0 ~n := #in~n; 74446#L25 assume ~n <= 0;#res := 1; 74444#factFINAL assume true; 74443#factEXIT >#76#return; 74437#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 74441#$Ultimate##0 ~n := #in~n; 74469#L25 assume !(~n <= 0); 74453#L26 call #t~ret0 := fact(~n - 1);< 73616#$Ultimate##0 ~n := #in~n; 74518#L25 assume !(~n <= 0); 74455#L26 call #t~ret0 := fact(~n - 1);< 74461#$Ultimate##0 ~n := #in~n; 73654#L25 assume !(~n <= 0); 74450#L26 call #t~ret0 := fact(~n - 1);< 74481#$Ultimate##0 ~n := #in~n; 74556#L25 assume !(~n <= 0); 74452#L26 call #t~ret0 := fact(~n - 1);< 74488#$Ultimate##0 ~n := #in~n; 74496#L25 assume !(~n <= 0); 74448#L26 call #t~ret0 := fact(~n - 1);< 74493#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74820#L25 assume !(~n <= 0); 73592#L26 call #t~ret0 := fact(~n - 1);< 74813#$Ultimate##0 ~n := #in~n; 74920#L25 assume ~n <= 0;#res := 1; 73591#factFINAL assume true; 73593#factEXIT >#66#return; 74812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74809#factFINAL assume true; 74491#factEXIT >#66#return; 74490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74489#factFINAL assume true; 74487#factEXIT >#66#return; 74486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74483#factFINAL assume true; 74480#factEXIT >#66#return; 74477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74474#factFINAL assume true; 74471#factEXIT >#66#return; 74470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74467#factFINAL assume true; 74463#factEXIT >#66#return; 74456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74460#factFINAL assume true; 74447#factEXIT >#66#return; 74445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 74440#factFINAL assume true; 74436#factEXIT >#78#return; 73610#L30-8 [2023-02-17 09:41:22,418 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:22,418 INFO L85 PathProgramCache]: Analyzing trace with hash -1286157522, now seen corresponding path program 4 times [2023-02-17 09:41:22,418 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:22,419 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [628879477] [2023-02-17 09:41:22,419 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:22,419 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:22,426 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:22,427 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [49142851] [2023-02-17 09:41:22,427 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:22,427 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:22,427 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:22,428 INFO L229 MonitoredProcess]: Starting monitored process 116 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:22,457 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (116)] Waiting until timeout for monitored process [2023-02-17 09:41:22,544 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:22,545 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:22,545 INFO L263 TraceCheckSpWp]: Trace formula consists of 223 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-17 09:41:22,547 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:22,567 INFO L134 CoverageAnalysis]: Checked inductivity of 394 backedges. 233 proven. 3 refuted. 0 times theorem prover too weak. 158 trivial. 0 not checked. [2023-02-17 09:41:22,567 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:22,603 INFO L134 CoverageAnalysis]: Checked inductivity of 394 backedges. 61 proven. 32 refuted. 0 times theorem prover too weak. 301 trivial. 0 not checked. [2023-02-17 09:41:22,603 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:22,603 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [628879477] [2023-02-17 09:41:22,603 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:22,603 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [49142851] [2023-02-17 09:41:22,603 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [49142851] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:22,603 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:22,603 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 11 [2023-02-17 09:41:22,604 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [753833102] [2023-02-17 09:41:22,604 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:22,604 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:22,604 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:22,604 INFO L85 PathProgramCache]: Analyzing trace with hash -339025532, now seen corresponding path program 10 times [2023-02-17 09:41:22,604 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:22,604 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [349655561] [2023-02-17 09:41:22,604 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:22,604 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:22,610 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:22,610 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [857361598] [2023-02-17 09:41:22,610 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:22,610 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:22,610 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:22,611 INFO L229 MonitoredProcess]: Starting monitored process 117 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:22,613 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (117)] Waiting until timeout for monitored process [2023-02-17 09:41:22,709 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:22,710 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:22,710 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:22,759 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:22,771 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:22,818 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:22,818 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:22,818 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:22,818 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:22,818 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:22,818 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:22,818 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:22,818 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:22,818 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration24_Loop [2023-02-17 09:41:22,818 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:22,819 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:22,820 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,839 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,843 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,844 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,844 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,854 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:22,854 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:22,854 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:22,854 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:22,861 INFO L229 MonitoredProcess]: Starting monitored process 118 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:22,865 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:22,865 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:22,874 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (118)] Waiting until timeout for monitored process [2023-02-17 09:41:22,885 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:22,885 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~ret10#1=0} Honda state: {ULTIMATE.start_main_#t~ret10#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:22,889 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (118)] Ended with exit code 0 [2023-02-17 09:41:22,889 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:22,890 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:22,891 INFO L229 MonitoredProcess]: Starting monitored process 119 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:22,901 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:22,901 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:22,912 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (119)] Waiting until timeout for monitored process [2023-02-17 09:41:22,923 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (119)] Ended with exit code 0 [2023-02-17 09:41:22,924 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:22,924 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:22,925 INFO L229 MonitoredProcess]: Starting monitored process 120 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:22,927 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (120)] Waiting until timeout for monitored process [2023-02-17 09:41:22,928 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:22,928 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:22,961 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:22,964 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (120)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:22,965 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:22,965 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:22,965 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:22,965 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:22,965 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:22,965 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:22,965 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:22,965 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:22,965 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration24_Loop [2023-02-17 09:41:22,966 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:22,966 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:22,967 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,968 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,969 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,970 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,973 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:22,976 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:22,976 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:22,976 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:22,976 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:22,977 INFO L229 MonitoredProcess]: Starting monitored process 121 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:22,985 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:22,992 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:22,992 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:22,992 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:22,992 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:22,992 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:22,993 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:22,993 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:22,995 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (121)] Waiting until timeout for monitored process [2023-02-17 09:41:23,007 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:23,010 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (121)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:23,011 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:23,011 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:23,012 INFO L229 MonitoredProcess]: Starting monitored process 122 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:23,017 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:23,024 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:23,024 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:23,024 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:23,024 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:23,024 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:23,025 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:23,025 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:23,027 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (122)] Waiting until timeout for monitored process [2023-02-17 09:41:23,042 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:23,046 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (122)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:23,046 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:23,046 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:23,048 INFO L229 MonitoredProcess]: Starting monitored process 123 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:23,053 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:23,060 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:23,060 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:23,060 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:23,060 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:23,060 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:23,061 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:23,061 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:23,063 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (123)] Waiting until timeout for monitored process [2023-02-17 09:41:23,077 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:23,080 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (123)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:23,081 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:23,081 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:23,082 INFO L229 MonitoredProcess]: Starting monitored process 124 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:23,089 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:23,097 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:23,097 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:23,097 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:23,097 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:23,098 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:23,101 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:23,102 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:23,107 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (124)] Waiting until timeout for monitored process [2023-02-17 09:41:23,113 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:23,125 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:23,126 INFO L444 ModelExtractionUtils]: 8 out of 11 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-17 09:41:23,126 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:23,126 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:23,129 INFO L229 MonitoredProcess]: Starting monitored process 125 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:23,131 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (125)] Waiting until timeout for monitored process [2023-02-17 09:41:23,132 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:23,132 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:23,132 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:23,132 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~k~0#1) = -2*ULTIMATE.start_main_~k~0#1 + 13 Supporting invariants [] [2023-02-17 09:41:23,136 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (124)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:23,136 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:23,145 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:23,228 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:23,232 INFO L263 TraceCheckSpWp]: Trace formula consists of 615 conjuncts, 30 conjunts are in the unsatisfiable core [2023-02-17 09:41:23,234 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:23,369 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:23,373 INFO L263 TraceCheckSpWp]: Trace formula consists of 697 conjuncts, 56 conjunts are in the unsatisfiable core [2023-02-17 09:41:23,376 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:23,533 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 0 proven. 391 refuted. 0 times theorem prover too weak. 335 trivial. 0 not checked. [2023-02-17 09:41:23,534 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 14 loop predicates [2023-02-17 09:41:23,534 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2074 states and 4160 transitions. cyclomatic complexity: 2123 Second operand has 17 states, 15 states have (on average 3.066666666666667) internal successors, (46), 15 states have internal predecessors, (46), 6 states have call successors, (12), 2 states have call predecessors, (12), 10 states have return successors, (19), 12 states have call predecessors, (19), 6 states have call successors, (19) [2023-02-17 09:41:23,935 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2074 states and 4160 transitions. cyclomatic complexity: 2123. Second operand has 17 states, 15 states have (on average 3.066666666666667) internal successors, (46), 15 states have internal predecessors, (46), 6 states have call successors, (12), 2 states have call predecessors, (12), 10 states have return successors, (19), 12 states have call predecessors, (19), 6 states have call successors, (19) Result 4398 states and 7620 transitions. Complement of second has 73 states. [2023-02-17 09:41:23,935 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 16 states 2 stem states 13 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:23,936 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 15 states have (on average 3.066666666666667) internal successors, (46), 15 states have internal predecessors, (46), 6 states have call successors, (12), 2 states have call predecessors, (12), 10 states have return successors, (19), 12 states have call predecessors, (19), 6 states have call successors, (19) [2023-02-17 09:41:23,936 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 96 transitions. [2023-02-17 09:41:23,936 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 16 states and 96 transitions. Stem has 92 letters. Loop has 104 letters. [2023-02-17 09:41:23,937 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:23,937 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 16 states and 96 transitions. Stem has 196 letters. Loop has 104 letters. [2023-02-17 09:41:23,937 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:23,937 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 16 states and 96 transitions. Stem has 92 letters. Loop has 208 letters. [2023-02-17 09:41:23,938 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:23,938 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4398 states and 7620 transitions. [2023-02-17 09:41:23,967 INFO L131 ngComponentsAnalysis]: Automaton has 11 accepting balls. 274 [2023-02-17 09:41:23,992 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4398 states to 3007 states and 5562 transitions. [2023-02-17 09:41:23,992 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 694 [2023-02-17 09:41:23,993 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 698 [2023-02-17 09:41:23,993 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3007 states and 5562 transitions. [2023-02-17 09:41:23,993 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:23,993 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3007 states and 5562 transitions. [2023-02-17 09:41:23,996 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3007 states and 5562 transitions. [2023-02-17 09:41:24,110 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3007 to 2360. [2023-02-17 09:41:24,113 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2360 states, 1433 states have (on average 1.032798325191905) internal successors, (1480), 1428 states have internal predecessors, (1480), 606 states have call successors, (657), 281 states have call predecessors, (657), 321 states have return successors, (2531), 650 states have call predecessors, (2531), 606 states have call successors, (2531) [2023-02-17 09:41:24,132 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (125)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:24,139 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2360 states to 2360 states and 4668 transitions. [2023-02-17 09:41:24,139 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2360 states and 4668 transitions. [2023-02-17 09:41:24,139 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:24,140 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2023-02-17 09:41:24,140 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=82, Unknown=0, NotChecked=0, Total=110 [2023-02-17 09:41:24,140 INFO L87 Difference]: Start difference. First operand 2360 states and 4668 transitions. Second operand has 11 states, 10 states have (on average 3.7) internal successors, (37), 11 states have internal predecessors, (37), 7 states have call successors, (15), 2 states have call predecessors, (15), 4 states have return successors, (15), 5 states have call predecessors, (15), 7 states have call successors, (15) [2023-02-17 09:41:24,330 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:24,330 INFO L93 Difference]: Finished difference Result 2441 states and 4840 transitions. [2023-02-17 09:41:24,330 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2441 states and 4840 transitions. [2023-02-17 09:41:24,345 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 241 [2023-02-17 09:41:24,369 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2441 states to 2429 states and 4828 transitions. [2023-02-17 09:41:24,370 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 719 [2023-02-17 09:41:24,371 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 719 [2023-02-17 09:41:24,371 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2429 states and 4828 transitions. [2023-02-17 09:41:24,371 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:24,371 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2429 states and 4828 transitions. [2023-02-17 09:41:24,373 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2429 states and 4828 transitions. [2023-02-17 09:41:24,442 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2429 to 2281. [2023-02-17 09:41:24,445 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2281 states, 1389 states have (on average 1.0302375809935205) internal successors, (1431), 1384 states have internal predecessors, (1431), 575 states have call successors, (616), 277 states have call predecessors, (616), 317 states have return successors, (2356), 619 states have call predecessors, (2356), 575 states have call successors, (2356) [2023-02-17 09:41:24,455 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2281 states to 2281 states and 4403 transitions. [2023-02-17 09:41:24,455 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2281 states and 4403 transitions. [2023-02-17 09:41:24,456 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2023-02-17 09:41:24,456 INFO L428 stractBuchiCegarLoop]: Abstraction has 2281 states and 4403 transitions. [2023-02-17 09:41:24,456 INFO L335 stractBuchiCegarLoop]: ======== Iteration 25 ============ [2023-02-17 09:41:24,456 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2281 states and 4403 transitions. [2023-02-17 09:41:24,465 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 214 [2023-02-17 09:41:24,465 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:24,465 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:24,466 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [15, 15, 9, 6, 6, 6, 6, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:24,466 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [17, 17, 14, 14, 14, 14, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:24,467 INFO L748 eck$LassoCheckResult]: Stem: 86206#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 86138#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 86139#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 86163#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 86150#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 86152#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 86717#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 86126#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 86131#$Ultimate##0 ~n := #in~n; 86193#L25 assume ~n <= 0;#res := 1; 86134#factFINAL assume true; 86125#factEXIT >#68#return; 86127#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 86195#$Ultimate##0 ~n := #in~n; 86810#L25 assume ~n <= 0;#res := 1; 86809#factFINAL assume true; 86807#factEXIT >#70#return; 86121#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 86122#$Ultimate##0 ~n := #in~n; 86975#L25 assume ~n <= 0;#res := 1; 86974#factFINAL assume true; 86973#factEXIT >#72#return; 86971#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 86965#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 86963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 86961#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 86960#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 86958#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 86959#$Ultimate##0 ~n := #in~n; 86972#L25 assume !(~n <= 0); 86968#L26 call #t~ret0 := fact(~n - 1);< 86970#$Ultimate##0 ~n := #in~n; 86978#L25 assume ~n <= 0;#res := 1; 86976#factFINAL assume true; 86966#factEXIT >#66#return; 86964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86962#factFINAL assume true; 86957#factEXIT >#74#return; 86955#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 86956#$Ultimate##0 ~n := #in~n; 86980#L25 assume ~n <= 0;#res := 1; 86979#factFINAL assume true; 86954#factEXIT >#76#return; 86952#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 86953#$Ultimate##0 ~n := #in~n; 86977#L25 assume !(~n <= 0); 86967#L26 call #t~ret0 := fact(~n - 1);< 86970#$Ultimate##0 ~n := #in~n; 86978#L25 assume ~n <= 0;#res := 1; 86976#factFINAL assume true; 86966#factEXIT >#66#return; 86969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86981#factFINAL assume true; 86951#factEXIT >#78#return; 86949#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 86948#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 86946#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 86944#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 86943#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 86911#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 86912#$Ultimate##0 ~n := #in~n; 86927#L25 assume !(~n <= 0); 86922#L26 call #t~ret0 := fact(~n - 1);< 86925#$Ultimate##0 ~n := #in~n; 87060#L25 assume !(~n <= 0); 86921#L26 call #t~ret0 := fact(~n - 1);< 87036#$Ultimate##0 ~n := #in~n; 87059#L25 assume ~n <= 0;#res := 1; 87055#factFINAL assume true; 87035#factEXIT >#66#return; 87030#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86941#factFINAL assume true; 86918#factEXIT >#66#return; 86917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86915#factFINAL assume true; 86909#factEXIT >#74#return; 86901#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 86907#$Ultimate##0 ~n := #in~n; 87039#L25 assume ~n <= 0;#res := 1; 87032#factFINAL assume true; 86983#factEXIT >#76#return; 86207#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 86208#$Ultimate##0 ~n := #in~n; 87018#L25 assume !(~n <= 0); 86756#L26 call #t~ret0 := fact(~n - 1);< 86768#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86914#L25 assume ~n <= 0;#res := 1; 86913#factFINAL assume true; 86884#factEXIT >#66#return; 86881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86863#factFINAL assume true; 86824#factEXIT >#66#return; 86825#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 87113#factFINAL assume true; 86742#factEXIT >#78#return; 86373#L30-8 [2023-02-17 09:41:24,467 INFO L750 eck$LassoCheckResult]: Loop: 86373#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 86737#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 86736#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 86735#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 86733#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 86117#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 86118#$Ultimate##0 ~n := #in~n; 86779#L25 assume !(~n <= 0); 86758#L26 call #t~ret0 := fact(~n - 1);< 86768#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86914#L25 assume ~n <= 0;#res := 1; 86913#factFINAL assume true; 86884#factEXIT >#66#return; 86881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86863#factFINAL assume true; 86824#factEXIT >#66#return; 86821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86805#factFINAL assume true; 86802#factEXIT >#66#return; 86796#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86793#factFINAL assume true; 86790#factEXIT >#66#return; 86788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86785#factFINAL assume true; 86784#factEXIT >#66#return; 86783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86782#factFINAL assume true; 86781#factEXIT >#66#return; 86778#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86777#factFINAL assume true; 86775#factEXIT >#66#return; 86765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86770#factFINAL assume true; 86753#factEXIT >#66#return; 86749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86748#factFINAL assume true; 86740#factEXIT >#74#return; 86199#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 86200#$Ultimate##0 ~n := #in~n; 86750#L25 assume ~n <= 0;#res := 1; 86744#factFINAL assume true; 86743#factEXIT >#76#return; 86174#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 86741#$Ultimate##0 ~n := #in~n; 86780#L25 assume !(~n <= 0); 86761#L26 call #t~ret0 := fact(~n - 1);< 86146#$Ultimate##0 ~n := #in~n; 87086#L25 assume !(~n <= 0); 86762#L26 call #t~ret0 := fact(~n - 1);< 86771#$Ultimate##0 ~n := #in~n; 86806#L25 assume !(~n <= 0); 86754#L26 call #t~ret0 := fact(~n - 1);< 86791#$Ultimate##0 ~n := #in~n; 87017#L25 assume !(~n <= 0); 86760#L26 call #t~ret0 := fact(~n - 1);< 86803#$Ultimate##0 ~n := #in~n; 86889#L25 assume !(~n <= 0); 86759#L26 call #t~ret0 := fact(~n - 1);< 86826#$Ultimate##0 ~n := #in~n; 86916#L25 assume !(~n <= 0); 86757#L26 call #t~ret0 := fact(~n - 1);< 86885#$Ultimate##0 ~n := #in~n; 86914#L25 assume ~n <= 0;#res := 1; 86913#factFINAL assume true; 86884#factEXIT >#66#return; 86881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86863#factFINAL assume true; 86824#factEXIT >#66#return; 86821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86805#factFINAL assume true; 86802#factEXIT >#66#return; 86796#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86793#factFINAL assume true; 86790#factEXIT >#66#return; 86788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86785#factFINAL assume true; 86784#factEXIT >#66#return; 86783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86782#factFINAL assume true; 86781#factEXIT >#66#return; 86173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 86175#factFINAL assume true; 86372#factEXIT >#78#return; 86373#L30-8 [2023-02-17 09:41:24,467 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:24,467 INFO L85 PathProgramCache]: Analyzing trace with hash -1326926298, now seen corresponding path program 5 times [2023-02-17 09:41:24,467 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:24,467 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [703301986] [2023-02-17 09:41:24,468 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:24,468 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:24,474 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:24,474 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1874303369] [2023-02-17 09:41:24,474 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:24,474 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:24,474 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:24,478 INFO L229 MonitoredProcess]: Starting monitored process 126 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:24,509 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (126)] Waiting until timeout for monitored process [2023-02-17 09:41:24,609 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 9 check-sat command(s) [2023-02-17 09:41:24,609 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:24,609 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:24,631 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:24,643 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:24,643 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:24,643 INFO L85 PathProgramCache]: Analyzing trace with hash -204283724, now seen corresponding path program 11 times [2023-02-17 09:41:24,643 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:24,643 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1515748670] [2023-02-17 09:41:24,643 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:24,644 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:24,647 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:24,647 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [804326126] [2023-02-17 09:41:24,647 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:24,647 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:24,647 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:24,648 INFO L229 MonitoredProcess]: Starting monitored process 127 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:24,650 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (127)] Waiting until timeout for monitored process [2023-02-17 09:41:24,755 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 21 check-sat command(s) [2023-02-17 09:41:24,755 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:24,757 INFO L263 TraceCheckSpWp]: Trace formula consists of 221 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-17 09:41:24,761 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:24,888 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 124 proven. 372 refuted. 0 times theorem prover too weak. 230 trivial. 0 not checked. [2023-02-17 09:41:24,888 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:25,472 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 123 proven. 461 refuted. 0 times theorem prover too weak. 142 trivial. 0 not checked. [2023-02-17 09:41:25,473 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:25,473 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1515748670] [2023-02-17 09:41:25,473 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:25,473 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [804326126] [2023-02-17 09:41:25,473 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [804326126] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:25,473 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:25,473 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 32] total 37 [2023-02-17 09:41:25,474 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [572071046] [2023-02-17 09:41:25,474 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:25,474 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:25,474 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:25,475 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 38 interpolants. [2023-02-17 09:41:25,475 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=207, Invalid=1199, Unknown=0, NotChecked=0, Total=1406 [2023-02-17 09:41:25,475 INFO L87 Difference]: Start difference. First operand 2281 states and 4403 transitions. cyclomatic complexity: 2160 Second operand has 38 states, 33 states have (on average 2.212121212121212) internal successors, (73), 33 states have internal predecessors, (73), 21 states have call successors, (21), 1 states have call predecessors, (21), 16 states have return successors, (33), 19 states have call predecessors, (33), 21 states have call successors, (33) [2023-02-17 09:41:27,289 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:27,289 INFO L93 Difference]: Finished difference Result 4215 states and 8855 transitions. [2023-02-17 09:41:27,289 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4215 states and 8855 transitions. [2023-02-17 09:41:27,315 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 591 [2023-02-17 09:41:27,362 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4215 states to 4183 states and 8823 transitions. [2023-02-17 09:41:27,363 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1185 [2023-02-17 09:41:27,364 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1185 [2023-02-17 09:41:27,364 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4183 states and 8823 transitions. [2023-02-17 09:41:27,365 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:27,365 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4183 states and 8823 transitions. [2023-02-17 09:41:27,367 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4183 states and 8823 transitions. [2023-02-17 09:41:27,538 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4183 to 2603. [2023-02-17 09:41:27,541 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2603 states, 1541 states have (on average 1.027255029201817) internal successors, (1583), 1532 states have internal predecessors, (1583), 719 states have call successors, (760), 329 states have call predecessors, (760), 343 states have return successors, (3417), 741 states have call predecessors, (3417), 719 states have call successors, (3417) [2023-02-17 09:41:27,554 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2603 states to 2603 states and 5760 transitions. [2023-02-17 09:41:27,554 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2603 states and 5760 transitions. [2023-02-17 09:41:27,555 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 32 states. [2023-02-17 09:41:27,555 INFO L428 stractBuchiCegarLoop]: Abstraction has 2603 states and 5760 transitions. [2023-02-17 09:41:27,555 INFO L335 stractBuchiCegarLoop]: ======== Iteration 26 ============ [2023-02-17 09:41:27,555 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2603 states and 5760 transitions. [2023-02-17 09:41:27,566 INFO L131 ngComponentsAnalysis]: Automaton has 9 accepting balls. 256 [2023-02-17 09:41:27,567 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:27,567 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:27,567 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [15, 15, 9, 6, 6, 6, 6, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:27,567 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [19, 19, 16, 16, 16, 16, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:27,568 INFO L748 eck$LassoCheckResult]: Stem: 93407#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 93350#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 93351#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 93372#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 93408#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 93971#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 93970#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 93346#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 93347#$Ultimate##0 ~n := #in~n; 94080#L25 assume ~n <= 0;#res := 1; 94078#factFINAL assume true; 94070#factEXIT >#68#return; 93390#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 93391#$Ultimate##0 ~n := #in~n; 94100#L25 assume ~n <= 0;#res := 1; 94099#factFINAL assume true; 94098#factEXIT >#70#return; 93334#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 93335#$Ultimate##0 ~n := #in~n; 94314#L25 assume ~n <= 0;#res := 1; 94312#factFINAL assume true; 94311#factEXIT >#72#return; 94309#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 94308#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 94307#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 94305#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 94303#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94299#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 94300#$Ultimate##0 ~n := #in~n; 94306#L25 assume !(~n <= 0); 94292#L26 call #t~ret0 := fact(~n - 1);< 94295#$Ultimate##0 ~n := #in~n; 94310#L25 assume ~n <= 0;#res := 1; 94304#factFINAL assume true; 94291#factEXIT >#66#return; 94294#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94318#factFINAL assume true; 94298#factEXIT >#74#return; 94268#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 94269#$Ultimate##0 ~n := #in~n; 94317#L25 assume ~n <= 0;#res := 1; 94297#factFINAL assume true; 94267#factEXIT >#76#return; 94264#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 94265#$Ultimate##0 ~n := #in~n; 94296#L25 assume !(~n <= 0); 94293#L26 call #t~ret0 := fact(~n - 1);< 94295#$Ultimate##0 ~n := #in~n; 94310#L25 assume ~n <= 0;#res := 1; 94304#factFINAL assume true; 94291#factEXIT >#66#return; 94290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94289#factFINAL assume true; 94263#factEXIT >#78#return; 94255#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 94236#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 94231#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 94227#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 94226#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 94202#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 94204#$Ultimate##0 ~n := #in~n; 94222#L25 assume !(~n <= 0); 94213#L26 call #t~ret0 := fact(~n - 1);< 94220#$Ultimate##0 ~n := #in~n; 94277#L25 assume !(~n <= 0); 94215#L26 call #t~ret0 := fact(~n - 1);< 94262#$Ultimate##0 ~n := #in~n; 94276#L25 assume ~n <= 0;#res := 1; 94272#factFINAL assume true; 94261#factEXIT >#66#return; 94254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94252#factFINAL assume true; 94233#factEXIT >#66#return; 94235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94260#factFINAL assume true; 94251#factEXIT >#74#return; 94192#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 94196#$Ultimate##0 ~n := #in~n; 94205#L25 assume ~n <= 0;#res := 1; 94200#factFINAL assume true; 94191#factEXIT >#76#return; 94184#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 94188#$Ultimate##0 ~n := #in~n; 94186#L25 assume !(~n <= 0); 94130#L26 call #t~ret0 := fact(~n - 1);< 94185#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94210#L25 assume ~n <= 0;#res := 1; 94208#factFINAL assume true; 94189#factEXIT >#66#return; 94187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94183#factFINAL assume true; 94175#factEXIT >#66#return; 94176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94652#factFINAL assume true; 94650#factEXIT >#78#return; 93330#L30-8 [2023-02-17 09:41:27,568 INFO L750 eck$LassoCheckResult]: Loop: 93330#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 94643#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 94640#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 94109#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 94067#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 93324#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 93325#$Ultimate##0 ~n := #in~n; 94140#L25 assume !(~n <= 0); 94127#L26 call #t~ret0 := fact(~n - 1);< 94185#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94210#L25 assume ~n <= 0;#res := 1; 94208#factFINAL assume true; 94189#factEXIT >#66#return; 94187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94183#factFINAL assume true; 94175#factEXIT >#66#return; 94168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94167#factFINAL assume true; 94164#factEXIT >#66#return; 94162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94159#factFINAL assume true; 94157#factEXIT >#66#return; 94156#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94153#factFINAL assume true; 94151#factEXIT >#66#return; 94150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94148#factFINAL assume true; 94145#factEXIT >#66#return; 94144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94143#factFINAL assume true; 94142#factEXIT >#66#return; 94131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94138#factFINAL assume true; 94118#factEXIT >#66#return; 94116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94114#factFINAL assume true; 94112#factEXIT >#74#return; 93402#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 93403#$Ultimate##0 ~n := #in~n; 94137#L25 assume ~n <= 0;#res := 1; 94136#factFINAL assume true; 94117#factEXIT >#76#return; 94113#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 94115#$Ultimate##0 ~n := #in~n; 94141#L25 assume !(~n <= 0); 94121#L26 call #t~ret0 := fact(~n - 1);< 94135#$Ultimate##0 ~n := #in~n; 94651#L25 assume !(~n <= 0); 94122#L26 call #t~ret0 := fact(~n - 1);< 94139#$Ultimate##0 ~n := #in~n; 94600#L25 assume !(~n <= 0); 94119#L26 call #t~ret0 := fact(~n - 1);< 94147#$Ultimate##0 ~n := #in~n; 94601#L25 assume !(~n <= 0); 94124#L26 call #t~ret0 := fact(~n - 1);< 94152#$Ultimate##0 ~n := #in~n; 94560#L25 assume !(~n <= 0); 94120#L26 call #t~ret0 := fact(~n - 1);< 94158#$Ultimate##0 ~n := #in~n; 94558#L25 assume !(~n <= 0); 94128#L26 call #t~ret0 := fact(~n - 1);< 94165#$Ultimate##0 ~n := #in~n; 94394#L25 assume !(~n <= 0); 94123#L26 call #t~ret0 := fact(~n - 1);< 94177#$Ultimate##0 ~n := #in~n; 94221#L25 assume !(~n <= 0); 94125#L26 call #t~ret0 := fact(~n - 1);< 94190#$Ultimate##0 ~n := #in~n; 94210#L25 assume ~n <= 0;#res := 1; 94208#factFINAL assume true; 94189#factEXIT >#66#return; 94187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94183#factFINAL assume true; 94175#factEXIT >#66#return; 94168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94167#factFINAL assume true; 94164#factEXIT >#66#return; 94162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94159#factFINAL assume true; 94157#factEXIT >#66#return; 94156#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94153#factFINAL assume true; 94151#factEXIT >#66#return; 94150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94148#factFINAL assume true; 94145#factEXIT >#66#return; 94144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94143#factFINAL assume true; 94142#factEXIT >#66#return; 94131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94138#factFINAL assume true; 94118#factEXIT >#66#return; 94116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 94114#factFINAL assume true; 94112#factEXIT >#78#return; 93330#L30-8 [2023-02-17 09:41:27,571 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:27,571 INFO L85 PathProgramCache]: Analyzing trace with hash -1326926298, now seen corresponding path program 6 times [2023-02-17 09:41:27,572 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:27,572 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1907529530] [2023-02-17 09:41:27,572 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:27,572 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:27,579 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:27,579 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [194368437] [2023-02-17 09:41:27,579 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:27,579 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:27,579 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:27,583 INFO L229 MonitoredProcess]: Starting monitored process 128 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:27,599 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (128)] Waiting until timeout for monitored process [2023-02-17 09:41:27,746 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 9 check-sat command(s) [2023-02-17 09:41:27,746 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:27,746 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:27,769 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:27,784 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:27,784 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:27,784 INFO L85 PathProgramCache]: Analyzing trace with hash -1134500236, now seen corresponding path program 12 times [2023-02-17 09:41:27,784 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:27,785 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1778368185] [2023-02-17 09:41:27,785 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:27,785 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:27,790 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:27,790 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [687934369] [2023-02-17 09:41:27,790 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:27,790 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:27,790 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:27,795 INFO L229 MonitoredProcess]: Starting monitored process 129 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:27,795 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (129)] Waiting until timeout for monitored process [2023-02-17 09:41:27,956 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 24 check-sat command(s) [2023-02-17 09:41:27,956 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:27,956 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:27,983 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:27,996 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:27,997 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:27,997 INFO L85 PathProgramCache]: Analyzing trace with hash -269050855, now seen corresponding path program 7 times [2023-02-17 09:41:27,997 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:27,997 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [728566326] [2023-02-17 09:41:27,997 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:27,997 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:28,005 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:28,006 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1407778126] [2023-02-17 09:41:28,006 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:41:28,006 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:28,006 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:28,015 INFO L229 MonitoredProcess]: Starting monitored process 130 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:28,037 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (130)] Waiting until timeout for monitored process [2023-02-17 09:41:28,213 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:28,214 INFO L263 TraceCheckSpWp]: Trace formula consists of 478 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-17 09:41:28,217 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:28,267 INFO L134 CoverageAnalysis]: Checked inductivity of 2732 backedges. 1490 proven. 61 refuted. 0 times theorem prover too weak. 1181 trivial. 0 not checked. [2023-02-17 09:41:28,267 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:28,377 INFO L134 CoverageAnalysis]: Checked inductivity of 2732 backedges. 306 proven. 254 refuted. 0 times theorem prover too weak. 2172 trivial. 0 not checked. [2023-02-17 09:41:28,378 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:28,378 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [728566326] [2023-02-17 09:41:28,378 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:28,378 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1407778126] [2023-02-17 09:41:28,378 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1407778126] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:28,378 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:28,378 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-17 09:41:28,378 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1113843749] [2023-02-17 09:41:28,378 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:28,416 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:28,417 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:28,417 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:28,417 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:28,417 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:28,417 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:28,417 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:28,417 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:28,417 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration26_Loop [2023-02-17 09:41:28,417 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:28,417 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:28,419 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,423 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,423 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,424 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,424 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,430 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:28,430 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:28,431 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:28,431 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:28,441 INFO L229 MonitoredProcess]: Starting monitored process 131 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:28,442 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:28,442 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:28,453 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (131)] Waiting until timeout for monitored process [2023-02-17 09:41:28,471 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (131)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:28,472 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:28,472 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:28,473 INFO L229 MonitoredProcess]: Starting monitored process 132 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:28,476 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (132)] Waiting until timeout for monitored process [2023-02-17 09:41:28,477 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:28,477 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:28,517 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:28,520 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (132)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:28,521 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:28,521 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:28,521 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:28,521 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:28,521 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:28,521 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:28,521 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:28,521 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:28,521 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration26_Loop [2023-02-17 09:41:28,521 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:28,521 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:28,523 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,528 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,529 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,529 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,530 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:28,533 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:28,533 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:28,533 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:28,533 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:28,535 INFO L229 MonitoredProcess]: Starting monitored process 133 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:28,541 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:28,548 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:28,548 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:28,548 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:28,548 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:28,548 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:28,552 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:28,553 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:28,558 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (133)] Waiting until timeout for monitored process [2023-02-17 09:41:28,566 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:28,571 INFO L443 ModelExtractionUtils]: Simplification made 4 calls to the SMT solver. [2023-02-17 09:41:28,571 INFO L444 ModelExtractionUtils]: 7 out of 11 variables were initially zero. Simplification set additionally 1 variables to zero. [2023-02-17 09:41:28,571 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:28,572 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:28,612 INFO L229 MonitoredProcess]: Starting monitored process 134 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:28,613 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (134)] Waiting until timeout for monitored process [2023-02-17 09:41:28,614 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:28,614 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:28,614 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:28,614 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~x~0#1, ULTIMATE.start_main_~k~0#1) = 1*ULTIMATE.start_main_~x~0#1 - 1*ULTIMATE.start_main_~k~0#1 Supporting invariants [] [2023-02-17 09:41:28,618 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (133)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:28,618 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:28,627 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:28,709 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:28,713 INFO L263 TraceCheckSpWp]: Trace formula consists of 655 conjuncts, 32 conjunts are in the unsatisfiable core [2023-02-17 09:41:28,715 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:28,786 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (134)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:28,909 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:28,914 INFO L263 TraceCheckSpWp]: Trace formula consists of 777 conjuncts, 42 conjunts are in the unsatisfiable core [2023-02-17 09:41:28,919 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:29,041 INFO L134 CoverageAnalysis]: Checked inductivity of 924 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 924 trivial. 0 not checked. [2023-02-17 09:41:29,042 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 4 loop predicates [2023-02-17 09:41:29,042 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2603 states and 5760 transitions. cyclomatic complexity: 3195 Second operand has 7 states, 7 states have (on average 4.0) internal successors, (28), 6 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:29,140 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2603 states and 5760 transitions. cyclomatic complexity: 3195. Second operand has 7 states, 7 states have (on average 4.0) internal successors, (28), 6 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) Result 4179 states and 8092 transitions. Complement of second has 13 states. [2023-02-17 09:41:29,141 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 6 states 2 stem states 3 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:29,142 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.0) internal successors, (28), 6 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:29,142 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 51 transitions. [2023-02-17 09:41:29,142 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 51 transitions. Stem has 98 letters. Loop has 116 letters. [2023-02-17 09:41:29,143 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:29,143 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 51 transitions. Stem has 214 letters. Loop has 116 letters. [2023-02-17 09:41:29,143 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:29,143 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 51 transitions. Stem has 98 letters. Loop has 232 letters. [2023-02-17 09:41:29,144 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:29,144 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4179 states and 8092 transitions. [2023-02-17 09:41:29,178 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 248 [2023-02-17 09:41:29,203 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4179 states to 2026 states and 4875 transitions. [2023-02-17 09:41:29,204 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 584 [2023-02-17 09:41:29,205 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 584 [2023-02-17 09:41:29,205 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2026 states and 4875 transitions. [2023-02-17 09:41:29,205 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:29,205 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2026 states and 4875 transitions. [2023-02-17 09:41:29,206 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2026 states and 4875 transitions. [2023-02-17 09:41:29,270 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2026 to 2020. [2023-02-17 09:41:29,273 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2020 states, 1160 states have (on average 1.0405172413793105) internal successors, (1207), 1162 states have internal predecessors, (1207), 606 states have call successors, (627), 230 states have call predecessors, (627), 254 states have return successors, (3034), 627 states have call predecessors, (3034), 606 states have call successors, (3034) [2023-02-17 09:41:29,284 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2020 states to 2020 states and 4868 transitions. [2023-02-17 09:41:29,284 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2020 states and 4868 transitions. [2023-02-17 09:41:29,285 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:29,285 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-17 09:41:29,285 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=185, Unknown=0, NotChecked=0, Total=240 [2023-02-17 09:41:29,285 INFO L87 Difference]: Start difference. First operand 2020 states and 4868 transitions. Second operand has 16 states, 15 states have (on average 3.4) internal successors, (51), 16 states have internal predecessors, (51), 11 states have call successors, (21), 2 states have call predecessors, (21), 6 states have return successors, (23), 9 states have call predecessors, (23), 11 states have call successors, (23) [2023-02-17 09:41:29,679 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:29,679 INFO L93 Difference]: Finished difference Result 2844 states and 8454 transitions. [2023-02-17 09:41:29,680 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2844 states and 8454 transitions. [2023-02-17 09:41:29,705 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 367 [2023-02-17 09:41:29,790 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2844 states to 2804 states and 8384 transitions. [2023-02-17 09:41:29,791 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1066 [2023-02-17 09:41:29,792 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1066 [2023-02-17 09:41:29,792 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2804 states and 8384 transitions. [2023-02-17 09:41:29,793 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:29,793 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2804 states and 8384 transitions. [2023-02-17 09:41:29,794 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2804 states and 8384 transitions. [2023-02-17 09:41:29,933 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2804 to 2207. [2023-02-17 09:41:29,936 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2207 states, 1245 states have (on average 1.0449799196787148) internal successors, (1301), 1246 states have internal predecessors, (1301), 708 states have call successors, (729), 230 states have call predecessors, (729), 254 states have return successors, (3721), 730 states have call predecessors, (3721), 708 states have call successors, (3721) [2023-02-17 09:41:29,951 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2207 states to 2207 states and 5751 transitions. [2023-02-17 09:41:29,951 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2207 states and 5751 transitions. [2023-02-17 09:41:29,952 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2023-02-17 09:41:29,952 INFO L428 stractBuchiCegarLoop]: Abstraction has 2207 states and 5751 transitions. [2023-02-17 09:41:29,952 INFO L335 stractBuchiCegarLoop]: ======== Iteration 27 ============ [2023-02-17 09:41:29,953 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2207 states and 5751 transitions. [2023-02-17 09:41:29,965 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 284 [2023-02-17 09:41:29,966 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:29,966 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:29,967 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [18, 18, 11, 7, 7, 7, 7, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:29,967 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [7, 7, 4, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:29,967 INFO L748 eck$LassoCheckResult]: Stem: 107145#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 107092#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 107093#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 107117#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 107146#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 107463#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 107460#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 107461#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 107557#$Ultimate##0 ~n := #in~n; 107563#L25 assume ~n <= 0;#res := 1; 107561#factFINAL assume true; 107556#factEXIT >#68#return; 107139#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 107140#$Ultimate##0 ~n := #in~n; 107705#L25 assume ~n <= 0;#res := 1; 107704#factFINAL assume true; 107702#factEXIT >#70#return; 106961#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 106962#$Ultimate##0 ~n := #in~n; 107703#L25 assume ~n <= 0;#res := 1; 107701#factFINAL assume true; 107700#factEXIT >#72#return; 107115#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 107116#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 107127#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108190#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108175#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108171#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108172#$Ultimate##0 ~n := #in~n; 108192#L25 assume !(~n <= 0); 108181#L26 call #t~ret0 := fact(~n - 1);< 108184#$Ultimate##0 ~n := #in~n; 108193#L25 assume ~n <= 0;#res := 1; 108191#factFINAL assume true; 108180#factEXIT >#66#return; 108183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108174#factFINAL assume true; 108170#factEXIT >#74#return; 108166#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108167#$Ultimate##0 ~n := #in~n; 108943#L25 assume ~n <= 0;#res := 1; 108942#factFINAL assume true; 108941#factEXIT >#76#return; 107708#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108940#$Ultimate##0 ~n := #in~n; 108939#L25 assume !(~n <= 0); 108935#L26 call #t~ret0 := fact(~n - 1);< 108938#$Ultimate##0 ~n := #in~n; 108934#L25 assume ~n <= 0;#res := 1; 108936#factFINAL assume true; 108948#factEXIT >#66#return; 108947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108946#factFINAL assume true; 107707#factEXIT >#78#return; 107706#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 107699#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 107697#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 107430#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 107112#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 107108#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 107109#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108615#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 108591#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 108611#$Ultimate##0 ~n := #in~n; 108618#L25 assume !(~n <= 0); 107497#L26 call #t~ret0 := fact(~n - 1);< 108544#$Ultimate##0 ~n := #in~n; 108540#L25 assume ~n <= 0;#res := 1; 108541#factFINAL assume true; 108576#factEXIT >#66#return; 108578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108614#factFINAL assume true; 108581#factEXIT >#68#return; 108595#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 108611#$Ultimate##0 ~n := #in~n; 108618#L25 assume ~n <= 0;#res := 1; 108616#factFINAL assume true; 108598#factEXIT >#70#return; 108593#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 108597#$Ultimate##0 ~n := #in~n; 108622#L25 assume !(~n <= 0); 107497#L26 call #t~ret0 := fact(~n - 1);< 108544#$Ultimate##0 ~n := #in~n; 108545#L25 assume !(~n <= 0); 107487#L26 call #t~ret0 := fact(~n - 1);< 108642#$Ultimate##0 ~n := #in~n; 108657#L25 assume ~n <= 0;#res := 1; 108645#factFINAL assume true; 108641#factEXIT >#66#return; 108636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108633#factFINAL assume true; 108628#factEXIT >#66#return; 108631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108758#factFINAL assume true; 108756#factEXIT >#72#return; 108617#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108613#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108612#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108580#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108574#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 107360#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 107456#$Ultimate##0 ~n := #in~n; 108547#L25 assume !(~n <= 0); 107493#L26 call #t~ret0 := fact(~n - 1);< 108544#$Ultimate##0 ~n := #in~n; 108545#L25 assume !(~n <= 0); 107487#L26 call #t~ret0 := fact(~n - 1);< 108642#$Ultimate##0 ~n := #in~n; 108657#L25 assume ~n <= 0;#res := 1; 108645#factFINAL assume true; 108641#factEXIT >#66#return; 108636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108633#factFINAL assume true; 108628#factEXIT >#66#return; 108627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108626#factFINAL assume true; 108625#factEXIT >#68#return; 107335#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 107456#$Ultimate##0 ~n := #in~n; 108547#L25 assume ~n <= 0;#res := 1; 108564#factFINAL assume true; 108553#factEXIT >#70#return; 107342#L30-2 [2023-02-17 09:41:29,968 INFO L750 eck$LassoCheckResult]: Loop: 107342#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 107455#$Ultimate##0 ~n := #in~n; 108635#L25 assume !(~n <= 0); 107495#L26 call #t~ret0 := fact(~n - 1);< 108632#$Ultimate##0 ~n := #in~n; 108545#L25 assume !(~n <= 0); 107487#L26 call #t~ret0 := fact(~n - 1);< 108642#$Ultimate##0 ~n := #in~n; 108657#L25 assume ~n <= 0;#res := 1; 108645#factFINAL assume true; 108641#factEXIT >#66#return; 108636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108633#factFINAL assume true; 108628#factEXIT >#66#return; 108627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108626#factFINAL assume true; 108625#factEXIT >#72#return; 107420#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 108917#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 108895#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 108893#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 108889#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 107315#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 107456#$Ultimate##0 ~n := #in~n; 108547#L25 assume !(~n <= 0); 107493#L26 call #t~ret0 := fact(~n - 1);< 108544#$Ultimate##0 ~n := #in~n; 108545#L25 assume !(~n <= 0); 107487#L26 call #t~ret0 := fact(~n - 1);< 108642#$Ultimate##0 ~n := #in~n; 108657#L25 assume ~n <= 0;#res := 1; 108645#factFINAL assume true; 108641#factEXIT >#66#return; 108636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108633#factFINAL assume true; 108628#factEXIT >#66#return; 108627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 108626#factFINAL assume true; 108625#factEXIT >#68#return; 107308#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 107456#$Ultimate##0 ~n := #in~n; 108547#L25 assume ~n <= 0;#res := 1; 108564#factFINAL assume true; 108553#factEXIT >#70#return; 107342#L30-2 [2023-02-17 09:41:29,968 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:29,968 INFO L85 PathProgramCache]: Analyzing trace with hash -820435983, now seen corresponding path program 4 times [2023-02-17 09:41:29,969 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:29,969 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1162595185] [2023-02-17 09:41:29,969 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:29,969 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:29,980 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:29,980 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1375673754] [2023-02-17 09:41:29,980 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:29,981 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:29,981 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:29,986 INFO L229 MonitoredProcess]: Starting monitored process 135 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:29,988 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (135)] Waiting until timeout for monitored process [2023-02-17 09:41:30,147 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:30,147 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:30,148 INFO L263 TraceCheckSpWp]: Trace formula consists of 292 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-17 09:41:30,150 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:30,187 INFO L134 CoverageAnalysis]: Checked inductivity of 683 backedges. 344 proven. 12 refuted. 0 times theorem prover too weak. 327 trivial. 0 not checked. [2023-02-17 09:41:30,187 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:30,242 INFO L134 CoverageAnalysis]: Checked inductivity of 683 backedges. 100 proven. 45 refuted. 0 times theorem prover too weak. 538 trivial. 0 not checked. [2023-02-17 09:41:30,242 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:30,242 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1162595185] [2023-02-17 09:41:30,242 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:30,243 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1375673754] [2023-02-17 09:41:30,243 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1375673754] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:30,243 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:30,243 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 13 [2023-02-17 09:41:30,243 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1004497423] [2023-02-17 09:41:30,243 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:30,244 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:30,244 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:30,244 INFO L85 PathProgramCache]: Analyzing trace with hash -947005134, now seen corresponding path program 1 times [2023-02-17 09:41:30,244 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:30,244 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [907796863] [2023-02-17 09:41:30,245 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:30,245 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:30,252 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:30,252 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1466980412] [2023-02-17 09:41:30,252 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:30,252 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:30,252 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,254 INFO L229 MonitoredProcess]: Starting monitored process 136 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,256 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (136)] Waiting until timeout for monitored process [2023-02-17 09:41:30,387 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:30,387 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:30,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:30,411 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:30,432 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:30,432 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:30,432 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:30,433 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:30,433 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:30,433 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,433 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:30,433 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:30,433 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration27_Loop [2023-02-17 09:41:30,433 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:30,433 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:30,435 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,436 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,437 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,437 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,438 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,439 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,444 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:30,444 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:30,444 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,444 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,448 INFO L229 MonitoredProcess]: Starting monitored process 137 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,457 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:30,458 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:30,466 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (137)] Waiting until timeout for monitored process [2023-02-17 09:41:30,475 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:30,475 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post8#1=0} Honda state: {ULTIMATE.start_main_#t~post8#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:30,478 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (137)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:30,478 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,478 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,480 INFO L229 MonitoredProcess]: Starting monitored process 138 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,482 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (138)] Waiting until timeout for monitored process [2023-02-17 09:41:30,484 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:30,484 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:30,505 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:30,505 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=1} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret2#1=1} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:30,508 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (138)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:30,509 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,509 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,511 INFO L229 MonitoredProcess]: Starting monitored process 139 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,513 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (139)] Waiting until timeout for monitored process [2023-02-17 09:41:30,514 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:30,515 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:30,540 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:30,540 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#t~ret3#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:30,544 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (139)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:30,544 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,544 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,546 INFO L229 MonitoredProcess]: Starting monitored process 140 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,548 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (140)] Waiting until timeout for monitored process [2023-02-17 09:41:30,550 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:30,550 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:30,571 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:30,571 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~ret9#1=0} Honda state: {ULTIMATE.start_main_#t~ret9#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:30,577 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (140)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:30,577 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,577 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,579 INFO L229 MonitoredProcess]: Starting monitored process 141 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,585 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:30,585 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:30,594 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (141)] Waiting until timeout for monitored process [2023-02-17 09:41:30,609 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:30,609 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#res#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#res#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:30,612 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (141)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:30,613 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,613 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,614 INFO L229 MonitoredProcess]: Starting monitored process 142 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,616 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (142)] Waiting until timeout for monitored process [2023-02-17 09:41:30,618 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:30,618 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:30,629 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (142)] Ended with exit code 0 [2023-02-17 09:41:30,629 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,630 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,631 INFO L229 MonitoredProcess]: Starting monitored process 143 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,631 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (143)] Waiting until timeout for monitored process [2023-02-17 09:41:30,634 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:30,634 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:30,646 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:30,648 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (143)] Ended with exit code 0 [2023-02-17 09:41:30,648 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:30,649 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:30,649 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:30,649 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:30,649 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:30,649 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,649 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:30,649 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:30,649 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration27_Loop [2023-02-17 09:41:30,649 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:30,649 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:30,650 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,653 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,654 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,654 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,655 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,656 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:30,659 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:30,659 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:30,659 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,659 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,660 INFO L229 MonitoredProcess]: Starting monitored process 144 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,662 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (144)] Waiting until timeout for monitored process [2023-02-17 09:41:30,664 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:30,669 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:30,670 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:30,670 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:30,670 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:30,670 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:30,670 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:30,670 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:30,672 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:30,674 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (144)] Ended with exit code 0 [2023-02-17 09:41:30,674 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,674 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,675 INFO L229 MonitoredProcess]: Starting monitored process 145 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,677 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (145)] Waiting until timeout for monitored process [2023-02-17 09:41:30,678 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:30,684 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:30,684 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:30,684 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:30,684 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:30,685 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:30,685 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:30,685 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:30,686 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:30,688 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (145)] Ended with exit code 0 [2023-02-17 09:41:30,688 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,688 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,690 INFO L229 MonitoredProcess]: Starting monitored process 146 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,691 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (146)] Waiting until timeout for monitored process [2023-02-17 09:41:30,692 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:30,698 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:30,698 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:30,698 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:30,698 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:30,698 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:30,698 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:30,698 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:30,701 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:30,703 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (146)] Ended with exit code 0 [2023-02-17 09:41:30,703 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,703 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,704 INFO L229 MonitoredProcess]: Starting monitored process 147 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,706 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (147)] Waiting until timeout for monitored process [2023-02-17 09:41:30,707 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:30,713 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:30,713 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:30,713 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:30,713 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:30,713 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:30,714 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:30,714 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:30,715 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:30,717 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (147)] Ended with exit code 0 [2023-02-17 09:41:30,717 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,717 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,718 INFO L229 MonitoredProcess]: Starting monitored process 148 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,719 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (148)] Waiting until timeout for monitored process [2023-02-17 09:41:30,721 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:30,727 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:30,727 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:30,727 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:30,727 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:30,727 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:30,728 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:30,728 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:30,729 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:30,731 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (148)] Ended with exit code 0 [2023-02-17 09:41:30,731 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,732 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,733 INFO L229 MonitoredProcess]: Starting monitored process 149 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,734 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (149)] Waiting until timeout for monitored process [2023-02-17 09:41:30,736 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:30,741 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:30,742 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:30,742 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:30,742 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:30,742 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:30,744 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:30,744 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:30,747 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:30,751 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:30,751 INFO L444 ModelExtractionUtils]: 6 out of 10 variables were initially zero. Simplification set additionally 2 variables to zero. [2023-02-17 09:41:30,751 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:30,751 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:30,760 INFO L229 MonitoredProcess]: Starting monitored process 150 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:30,762 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:30,762 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:30,762 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:30,762 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~k~0#1) = -1*ULTIMATE.start_main_~k~0#1 Supporting invariants [] [2023-02-17 09:41:30,762 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (150)] Waiting until timeout for monitored process [2023-02-17 09:41:30,765 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (149)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:30,766 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:30,775 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:30,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:30,879 INFO L263 TraceCheckSpWp]: Trace formula consists of 796 conjuncts, 38 conjunts are in the unsatisfiable core [2023-02-17 09:41:30,881 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:30,981 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:30,984 INFO L263 TraceCheckSpWp]: Trace formula consists of 297 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-17 09:41:30,985 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:31,047 INFO L134 CoverageAnalysis]: Checked inductivity of 96 backedges. 18 proven. 0 refuted. 0 times theorem prover too weak. 78 trivial. 0 not checked. [2023-02-17 09:41:31,048 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 6 loop predicates [2023-02-17 09:41:31,048 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2207 states and 5751 transitions. cyclomatic complexity: 3576 Second operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) [2023-02-17 09:41:31,158 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2207 states and 5751 transitions. cyclomatic complexity: 3576. Second operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) Result 3317 states and 7316 transitions. Complement of second has 26 states. [2023-02-17 09:41:31,159 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 8 states 2 stem states 5 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:31,159 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) [2023-02-17 09:41:31,160 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 41 transitions. [2023-02-17 09:41:31,160 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 41 transitions. Stem has 122 letters. Loop has 44 letters. [2023-02-17 09:41:31,160 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:31,160 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-17 09:41:31,168 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:31,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:31,273 INFO L263 TraceCheckSpWp]: Trace formula consists of 796 conjuncts, 38 conjunts are in the unsatisfiable core [2023-02-17 09:41:31,275 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:31,375 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:31,377 INFO L263 TraceCheckSpWp]: Trace formula consists of 297 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-17 09:41:31,379 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:31,441 INFO L134 CoverageAnalysis]: Checked inductivity of 96 backedges. 18 proven. 0 refuted. 0 times theorem prover too weak. 78 trivial. 0 not checked. [2023-02-17 09:41:31,442 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and with honda bouncer for loop.2 stem predicates 6 loop predicates [2023-02-17 09:41:31,442 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2207 states and 5751 transitions. cyclomatic complexity: 3576 Second operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) [2023-02-17 09:41:31,538 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2207 states and 5751 transitions. cyclomatic complexity: 3576. Second operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) Result 3317 states and 7316 transitions. Complement of second has 26 states. [2023-02-17 09:41:31,538 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 8 states 2 stem states 5 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:31,539 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) [2023-02-17 09:41:31,539 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 41 transitions. [2023-02-17 09:41:31,539 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 8 states and 41 transitions. Stem has 122 letters. Loop has 44 letters. [2023-02-17 09:41:31,539 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:31,539 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-17 09:41:31,547 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:31,653 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:31,657 INFO L263 TraceCheckSpWp]: Trace formula consists of 796 conjuncts, 38 conjunts are in the unsatisfiable core [2023-02-17 09:41:31,660 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:31,760 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (150)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:31,805 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:31,809 INFO L263 TraceCheckSpWp]: Trace formula consists of 297 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-17 09:41:31,810 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:31,870 INFO L134 CoverageAnalysis]: Checked inductivity of 96 backedges. 18 proven. 0 refuted. 0 times theorem prover too weak. 78 trivial. 0 not checked. [2023-02-17 09:41:31,870 INFO L141 lantAutomatonBouncer]: Defining Buchi interpolant automaton with scrooge nondeterminism in stemwith honda bouncer for stem and without honda bouncer for loop.2 stem predicates 6 loop predicates [2023-02-17 09:41:31,870 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2207 states and 5751 transitions. cyclomatic complexity: 3576 Second operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) [2023-02-17 09:41:32,065 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2207 states and 5751 transitions. cyclomatic complexity: 3576. Second operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) Result 5230 states and 12495 transitions. Complement of second has 50 states. [2023-02-17 09:41:32,065 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 9 states 2 stem states 6 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:32,066 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 7 states have (on average 4.714285714285714) internal successors, (33), 8 states have internal predecessors, (33), 5 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (12), 6 states have call predecessors, (12), 5 states have call successors, (12) [2023-02-17 09:41:32,066 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 76 transitions. [2023-02-17 09:41:32,066 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 9 states and 76 transitions. Stem has 122 letters. Loop has 44 letters. [2023-02-17 09:41:32,067 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:32,067 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 9 states and 76 transitions. Stem has 166 letters. Loop has 44 letters. [2023-02-17 09:41:32,067 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:32,067 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 9 states and 76 transitions. Stem has 122 letters. Loop has 88 letters. [2023-02-17 09:41:32,068 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:32,068 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5230 states and 12495 transitions. [2023-02-17 09:41:32,123 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 324 [2023-02-17 09:41:32,174 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5230 states to 3616 states and 9637 transitions. [2023-02-17 09:41:32,174 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 929 [2023-02-17 09:41:32,176 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 959 [2023-02-17 09:41:32,176 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3616 states and 9637 transitions. [2023-02-17 09:41:32,176 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:32,176 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3616 states and 9637 transitions. [2023-02-17 09:41:32,178 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3616 states and 9637 transitions. [2023-02-17 09:41:32,284 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3616 to 2960. [2023-02-17 09:41:32,288 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2960 states, 1769 states have (on average 1.0407009609949123) internal successors, (1841), 1774 states have internal predecessors, (1841), 780 states have call successors, (861), 333 states have call predecessors, (861), 411 states have return successors, (3682), 852 states have call predecessors, (3682), 780 states have call successors, (3682) [2023-02-17 09:41:32,304 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2960 states to 2960 states and 6384 transitions. [2023-02-17 09:41:32,305 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2960 states and 6384 transitions. [2023-02-17 09:41:32,305 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:32,305 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-17 09:41:32,305 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=123, Unknown=0, NotChecked=0, Total=156 [2023-02-17 09:41:32,306 INFO L87 Difference]: Start difference. First operand 2960 states and 6384 transitions. Second operand has 13 states, 11 states have (on average 4.2727272727272725) internal successors, (47), 13 states have internal predecessors, (47), 8 states have call successors, (21), 2 states have call predecessors, (21), 4 states have return successors, (21), 7 states have call predecessors, (21), 8 states have call successors, (21) [2023-02-17 09:41:32,591 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:32,591 INFO L93 Difference]: Finished difference Result 3317 states and 7386 transitions. [2023-02-17 09:41:32,591 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3317 states and 7386 transitions. [2023-02-17 09:41:32,621 INFO L131 ngComponentsAnalysis]: Automaton has 10 accepting balls. 298 [2023-02-17 09:41:32,657 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3317 states to 3236 states and 7252 transitions. [2023-02-17 09:41:32,657 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 953 [2023-02-17 09:41:32,659 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 953 [2023-02-17 09:41:32,659 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3236 states and 7252 transitions. [2023-02-17 09:41:32,659 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:32,659 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3236 states and 7252 transitions. [2023-02-17 09:41:32,661 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3236 states and 7252 transitions. [2023-02-17 09:41:32,731 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3236 to 3023. [2023-02-17 09:41:32,734 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3023 states, 1815 states have (on average 1.0413223140495869) internal successors, (1890), 1817 states have internal predecessors, (1890), 797 states have call successors, (878), 333 states have call predecessors, (878), 411 states have return successors, (3717), 872 states have call predecessors, (3717), 797 states have call successors, (3717) [2023-02-17 09:41:32,749 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3023 states to 3023 states and 6485 transitions. [2023-02-17 09:41:32,749 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3023 states and 6485 transitions. [2023-02-17 09:41:32,750 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-17 09:41:32,750 INFO L428 stractBuchiCegarLoop]: Abstraction has 3023 states and 6485 transitions. [2023-02-17 09:41:32,750 INFO L335 stractBuchiCegarLoop]: ======== Iteration 28 ============ [2023-02-17 09:41:32,751 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3023 states and 6485 transitions. [2023-02-17 09:41:32,768 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 233 [2023-02-17 09:41:32,768 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:32,768 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:32,770 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [23, 23, 15, 8, 8, 8, 8, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1] [2023-02-17 09:41:32,770 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [49, 49, 37, 37, 37, 37, 12, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:32,770 INFO L748 eck$LassoCheckResult]: Stem: 129787#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 129727#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 129728#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 129750#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 129739#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 129740#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 131462#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 131460#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 131461#$Ultimate##0 ~n := #in~n; 131464#L25 assume ~n <= 0;#res := 1; 131463#factFINAL assume true; 131459#factEXIT >#68#return; 131457#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 131458#$Ultimate##0 ~n := #in~n; 131466#L25 assume ~n <= 0;#res := 1; 131465#factFINAL assume true; 131456#factEXIT >#70#return; 131454#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 131455#$Ultimate##0 ~n := #in~n; 131468#L25 assume ~n <= 0;#res := 1; 131467#factFINAL assume true; 131453#factEXIT >#72#return; 131452#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 131451#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 131449#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 131447#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 131446#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 131442#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 131445#$Ultimate##0 ~n := #in~n; 131443#L25 assume !(~n <= 0); 131436#L26 call #t~ret0 := fact(~n - 1);< 131439#$Ultimate##0 ~n := #in~n; 131444#L25 assume ~n <= 0;#res := 1; 131441#factFINAL assume true; 131435#factEXIT >#66#return; 131438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 131491#factFINAL assume true; 131490#factEXIT >#74#return; 131105#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 131489#$Ultimate##0 ~n := #in~n; 132481#L25 assume ~n <= 0;#res := 1; 132480#factFINAL assume true; 131104#factEXIT >#76#return; 130213#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 130214#$Ultimate##0 ~n := #in~n; 132626#L25 assume !(~n <= 0); 132624#L26 call #t~ret0 := fact(~n - 1);< 132625#$Ultimate##0 ~n := #in~n; 132636#L25 assume ~n <= 0;#res := 1; 132631#factFINAL assume true; 132623#factEXIT >#66#return; 132620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 132619#factFINAL assume true; 132616#factEXIT >#78#return; 130210#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 130208#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 130206#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 130205#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 130204#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 130202#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 130203#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 132341#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 132339#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129717#$Ultimate##0 ~n := #in~n; 132344#L25 assume ~n <= 0;#res := 1; 132343#factFINAL assume true; 132338#factEXIT >#68#return; 129780#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129781#$Ultimate##0 ~n := #in~n; 132299#L25 assume ~n <= 0;#res := 1; 132298#factFINAL assume true; 132296#factEXIT >#70#return; 132031#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 132034#$Ultimate##0 ~n := #in~n; 132043#L25 assume ~n <= 0;#res := 1; 132042#factFINAL assume true; 132030#factEXIT >#72#return; 132033#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 131990#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 131988#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 131987#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 131979#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129755#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 132265#$Ultimate##0 ~n := #in~n; 132276#L25 assume !(~n <= 0); 131962#L26 call #t~ret0 := fact(~n - 1);< 131969#$Ultimate##0 ~n := #in~n; 131977#L25 assume ~n <= 0;#res := 1; 131970#factFINAL assume true; 131959#factEXIT >#66#return; 131967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 132269#factFINAL assume true; 132234#factEXIT >#68#return; 132236#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 132265#$Ultimate##0 ~n := #in~n; 132276#L25 assume !(~n <= 0); 131962#L26 call #t~ret0 := fact(~n - 1);< 131969#$Ultimate##0 ~n := #in~n; 131977#L25 assume ~n <= 0;#res := 1; 131970#factFINAL assume true; 131959#factEXIT >#66#return; 131967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 132269#factFINAL assume true; 132234#factEXIT >#70#return; 132262#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 132374#$Ultimate##0 ~n := #in~n; 132386#L25 assume ~n <= 0;#res := 1; 132383#factFINAL assume true; 132364#factEXIT >#72#return; 132369#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 132466#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 132464#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 132457#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 132458#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129836#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129931#$Ultimate##0 ~n := #in~n; 131976#L25 assume !(~n <= 0); 131964#L26 call #t~ret0 := fact(~n - 1);< 131969#$Ultimate##0 ~n := #in~n; 131978#L25 assume !(~n <= 0); 131998#L26 call #t~ret0 := fact(~n - 1);< 132380#$Ultimate##0 ~n := #in~n; 132385#L25 assume ~n <= 0;#res := 1; 132384#factFINAL assume true; 132379#factEXIT >#66#return; 132378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 132375#factFINAL assume true; 132035#factEXIT >#66#return; 132036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 132302#factFINAL assume true; 129806#factEXIT >#74#return; 129848#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129931#$Ultimate##0 ~n := #in~n; 131976#L25 assume !(~n <= 0); 131964#L26 call #t~ret0 := fact(~n - 1);< 131969#$Ultimate##0 ~n := #in~n; 131977#L25 assume ~n <= 0;#res := 1; 131970#factFINAL assume true; 131959#factEXIT >#66#return; 131958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 131957#factFINAL assume true; 131953#factEXIT >#76#return; 129810#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 129931#$Ultimate##0 ~n := #in~n; 131976#L25 assume !(~n <= 0); 131964#L26 call #t~ret0 := fact(~n - 1);< 131969#$Ultimate##0 ~n := #in~n; 131977#L25 assume ~n <= 0;#res := 1; 131970#factFINAL assume true; 131959#factEXIT >#66#return; 131958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 131957#factFINAL assume true; 131953#factEXIT >#78#return; 131954#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129800#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 129797#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129791#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 129747#L41-2 [2023-02-17 09:41:32,771 INFO L750 eck$LassoCheckResult]: Loop: 129747#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 129748#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 130285#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 130266#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129734#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129984#$Ultimate##0 ~n := #in~n; 129960#L25 assume !(~n <= 0); 129733#L26 call #t~ret0 := fact(~n - 1);< 129735#$Ultimate##0 ~n := #in~n; 130211#L25 assume !(~n <= 0); 130537#L26 call #t~ret0 := fact(~n - 1);< 130542#$Ultimate##0 ~n := #in~n; 130543#L25 assume ~n <= 0;#res := 1; 130562#factFINAL assume true; 130561#factEXIT >#66#return; 130560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130556#factFINAL assume true; 130555#factEXIT >#66#return; 130553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130551#factFINAL assume true; 130550#factEXIT >#68#return; 129967#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129964#$Ultimate##0 ~n := #in~n; 129981#L25 assume ~n <= 0;#res := 1; 130191#factFINAL assume true; 130179#factEXIT >#70#return; 130149#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 130532#$Ultimate##0 ~n := #in~n; 130524#L25 assume !(~n <= 0); 129906#L26 call #t~ret0 := fact(~n - 1);< 130009#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 130018#L25 assume ~n <= 0;#res := 1; 130016#factFINAL assume true; 130014#factEXIT >#66#return; 130013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130010#factFINAL assume true; 129989#factEXIT >#66#return; 129992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130578#factFINAL assume true; 130146#factEXIT >#72#return; 130151#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 130345#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 130344#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 130342#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 130339#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 130089#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 130292#$Ultimate##0 ~n := #in~n; 130300#L25 assume !(~n <= 0); 129894#L26 call #t~ret0 := fact(~n - 1);< 130009#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 130018#L25 assume ~n <= 0;#res := 1; 130016#factFINAL assume true; 130014#factEXIT >#66#return; 130013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130010#factFINAL assume true; 129989#factEXIT >#66#return; 129993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130169#factFINAL assume true; 130165#factEXIT >#66#return; 129955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129934#factFINAL assume true; 129884#factEXIT >#66#return; 129914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130255#factFINAL assume true; 130250#factEXIT >#66#return; 130249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130248#factFINAL assume true; 130242#factEXIT >#66#return; 130241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130240#factFINAL assume true; 130232#factEXIT >#66#return; 130229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130231#factFINAL assume true; 130221#factEXIT >#66#return; 130225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130336#factFINAL assume true; 130337#factEXIT >#68#return; 130097#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 130131#$Ultimate##0 ~n := #in~n; 130142#L25 assume !(~n <= 0); 129908#L26 call #t~ret0 := fact(~n - 1);< 129956#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 130018#L25 assume ~n <= 0;#res := 1; 130016#factFINAL assume true; 130014#factEXIT >#66#return; 130013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130010#factFINAL assume true; 129989#factEXIT >#66#return; 129993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130169#factFINAL assume true; 130165#factEXIT >#66#return; 129955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129934#factFINAL assume true; 129884#factEXIT >#66#return; 129914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130255#factFINAL assume true; 130250#factEXIT >#66#return; 130249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130248#factFINAL assume true; 130242#factEXIT >#66#return; 130241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130240#factFINAL assume true; 130232#factEXIT >#66#return; 130229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130231#factFINAL assume true; 130221#factEXIT >#66#return; 130225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130336#factFINAL assume true; 130337#factEXIT >#70#return; 130048#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 130304#$Ultimate##0 ~n := #in~n; 130311#L25 assume ~n <= 0;#res := 1; 130078#factFINAL assume true; 130044#factEXIT >#72#return; 130067#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 130301#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 130298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 130296#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 130294#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 130122#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 130292#$Ultimate##0 ~n := #in~n; 130300#L25 assume !(~n <= 0); 129894#L26 call #t~ret0 := fact(~n - 1);< 130009#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 130018#L25 assume ~n <= 0;#res := 1; 130016#factFINAL assume true; 130014#factEXIT >#66#return; 130013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130010#factFINAL assume true; 129989#factEXIT >#66#return; 129993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130169#factFINAL assume true; 130165#factEXIT >#66#return; 129955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129934#factFINAL assume true; 129884#factEXIT >#66#return; 129914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130255#factFINAL assume true; 130250#factEXIT >#66#return; 130237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130390#factFINAL assume true; 130290#factEXIT >#68#return; 130081#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 130131#$Ultimate##0 ~n := #in~n; 130142#L25 assume !(~n <= 0); 129908#L26 call #t~ret0 := fact(~n - 1);< 129956#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 130018#L25 assume ~n <= 0;#res := 1; 130016#factFINAL assume true; 130014#factEXIT >#66#return; 130013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130010#factFINAL assume true; 129989#factEXIT >#66#return; 129993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130169#factFINAL assume true; 130165#factEXIT >#66#return; 129955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129934#factFINAL assume true; 129884#factEXIT >#66#return; 129914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130255#factFINAL assume true; 130250#factEXIT >#66#return; 130249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130248#factFINAL assume true; 130242#factEXIT >#66#return; 130241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130240#factFINAL assume true; 130232#factEXIT >#66#return; 130229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130231#factFINAL assume true; 130221#factEXIT >#66#return; 130225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130336#factFINAL assume true; 130337#factEXIT >#70#return; 130052#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 130304#$Ultimate##0 ~n := #in~n; 130311#L25 assume ~n <= 0;#res := 1; 130078#factFINAL assume true; 130044#factEXIT >#72#return; 130068#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 130259#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 130218#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 130171#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 130163#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 129875#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 129881#$Ultimate##0 ~n := #in~n; 130012#L25 assume !(~n <= 0); 129910#L26 call #t~ret0 := fact(~n - 1);< 130009#$Ultimate##0 ~n := #in~n; 129957#L25 assume !(~n <= 0); 129887#L26 call #t~ret0 := fact(~n - 1);< 130015#$Ultimate##0 ~n := #in~n; 130018#L25 assume ~n <= 0;#res := 1; 130016#factFINAL assume true; 130014#factEXIT >#66#return; 130013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 130010#factFINAL assume true; 129989#factEXIT >#66#return; 129997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129962#factFINAL assume true; 129963#factEXIT >#74#return; 129872#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 129882#$Ultimate##0 ~n := #in~n; 129958#L25 assume !(~n <= 0); 129896#L26 call #t~ret0 := fact(~n - 1);< 129956#$Ultimate##0 ~n := #in~n; 129953#L25 assume ~n <= 0;#res := 1; 129954#factFINAL assume true; 129999#factEXIT >#66#return; 129986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129987#factFINAL assume true; 129959#factEXIT >#76#return; 129871#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 129882#$Ultimate##0 ~n := #in~n; 129958#L25 assume !(~n <= 0); 129896#L26 call #t~ret0 := fact(~n - 1);< 129956#$Ultimate##0 ~n := #in~n; 129953#L25 assume ~n <= 0;#res := 1; 129954#factFINAL assume true; 129999#factEXIT >#66#return; 129986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 129987#factFINAL assume true; 129959#factEXIT >#78#return; 129877#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 129801#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 129798#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 129799#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 129747#L41-2 [2023-02-17 09:41:32,771 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:32,771 INFO L85 PathProgramCache]: Analyzing trace with hash 453999026, now seen corresponding path program 5 times [2023-02-17 09:41:32,772 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:32,772 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1417620121] [2023-02-17 09:41:32,772 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:32,772 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:32,781 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:32,781 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1826788481] [2023-02-17 09:41:32,781 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:32,781 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:32,782 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:32,786 INFO L229 MonitoredProcess]: Starting monitored process 151 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:32,810 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (151)] Waiting until timeout for monitored process [2023-02-17 09:41:32,966 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 6 check-sat command(s) [2023-02-17 09:41:32,966 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:32,967 INFO L263 TraceCheckSpWp]: Trace formula consists of 326 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-17 09:41:32,969 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:32,997 INFO L134 CoverageAnalysis]: Checked inductivity of 1130 backedges. 654 proven. 27 refuted. 0 times theorem prover too weak. 449 trivial. 0 not checked. [2023-02-17 09:41:32,998 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:33,059 INFO L134 CoverageAnalysis]: Checked inductivity of 1130 backedges. 142 proven. 107 refuted. 0 times theorem prover too weak. 881 trivial. 0 not checked. [2023-02-17 09:41:33,059 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:33,059 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1417620121] [2023-02-17 09:41:33,059 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:33,059 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1826788481] [2023-02-17 09:41:33,060 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1826788481] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:33,060 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:33,060 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10] total 14 [2023-02-17 09:41:33,060 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [201780254] [2023-02-17 09:41:33,060 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:33,061 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:33,061 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:33,061 INFO L85 PathProgramCache]: Analyzing trace with hash 1753477096, now seen corresponding path program 7 times [2023-02-17 09:41:33,061 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:33,061 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [941771987] [2023-02-17 09:41:33,061 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:33,061 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:33,071 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:33,071 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1984437163] [2023-02-17 09:41:33,071 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:41:33,071 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:33,072 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:33,073 INFO L229 MonitoredProcess]: Starting monitored process 152 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:33,085 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (152)] Waiting until timeout for monitored process [2023-02-17 09:41:33,314 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:33,317 INFO L263 TraceCheckSpWp]: Trace formula consists of 656 conjuncts, 18 conjunts are in the unsatisfiable core [2023-02-17 09:41:33,321 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:33,431 INFO L134 CoverageAnalysis]: Checked inductivity of 6073 backedges. 2845 proven. 200 refuted. 0 times theorem prover too weak. 3028 trivial. 0 not checked. [2023-02-17 09:41:33,431 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:33,584 INFO L134 CoverageAnalysis]: Checked inductivity of 6073 backedges. 133 proven. 1052 refuted. 0 times theorem prover too weak. 4888 trivial. 0 not checked. [2023-02-17 09:41:33,584 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:33,584 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [941771987] [2023-02-17 09:41:33,584 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:33,584 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1984437163] [2023-02-17 09:41:33,585 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1984437163] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:33,585 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:33,585 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 17] total 20 [2023-02-17 09:41:33,585 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [867638175] [2023-02-17 09:41:33,585 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:33,586 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:33,586 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:33,586 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2023-02-17 09:41:33,586 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=146, Unknown=0, NotChecked=0, Total=182 [2023-02-17 09:41:33,587 INFO L87 Difference]: Start difference. First operand 3023 states and 6485 transitions. cyclomatic complexity: 3500 Second operand has 14 states, 9 states have (on average 5.666666666666667) internal successors, (51), 12 states have internal predecessors, (51), 8 states have call successors, (25), 2 states have call predecessors, (25), 4 states have return successors, (25), 9 states have call predecessors, (25), 8 states have call successors, (25) [2023-02-17 09:41:33,802 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:33,803 INFO L93 Difference]: Finished difference Result 2740 states and 4954 transitions. [2023-02-17 09:41:33,803 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2740 states and 4954 transitions. [2023-02-17 09:41:33,816 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 199 [2023-02-17 09:41:33,832 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2740 states to 2232 states and 4058 transitions. [2023-02-17 09:41:33,833 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 633 [2023-02-17 09:41:33,833 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 633 [2023-02-17 09:41:33,833 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2232 states and 4058 transitions. [2023-02-17 09:41:33,835 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:33,835 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2232 states and 4058 transitions. [2023-02-17 09:41:33,836 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2232 states and 4058 transitions. [2023-02-17 09:41:33,877 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2232 to 2158. [2023-02-17 09:41:33,879 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2158 states, 1331 states have (on average 1.035311795642374) internal successors, (1378), 1332 states have internal predecessors, (1378), 507 states have call successors, (560), 274 states have call predecessors, (560), 320 states have return successors, (2039), 551 states have call predecessors, (2039), 507 states have call successors, (2039) [2023-02-17 09:41:33,888 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2158 states to 2158 states and 3977 transitions. [2023-02-17 09:41:33,889 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2158 states and 3977 transitions. [2023-02-17 09:41:33,889 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2023-02-17 09:41:33,890 INFO L428 stractBuchiCegarLoop]: Abstraction has 2158 states and 3977 transitions. [2023-02-17 09:41:33,890 INFO L335 stractBuchiCegarLoop]: ======== Iteration 29 ============ [2023-02-17 09:41:33,890 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2158 states and 3977 transitions. [2023-02-17 09:41:33,897 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 168 [2023-02-17 09:41:33,897 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:33,897 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:33,899 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [46, 46, 28, 28, 28, 28, 18, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:33,899 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [10, 10, 7, 7, 7, 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:33,899 INFO L748 eck$LassoCheckResult]: Stem: 138363#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 138308#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 138309#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 138331#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 138319#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 138320#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 139678#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 139676#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 139677#$Ultimate##0 ~n := #in~n; 139682#L25 assume ~n <= 0;#res := 1; 139681#factFINAL assume true; 139675#factEXIT >#68#return; 139206#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 139209#$Ultimate##0 ~n := #in~n; 139208#L25 assume ~n <= 0;#res := 1; 139205#factFINAL assume true; 139207#factEXIT >#70#return; 139378#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 139379#$Ultimate##0 ~n := #in~n; 139528#L25 assume ~n <= 0;#res := 1; 139525#factFINAL assume true; 139377#factEXIT >#72#return; 139375#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 139373#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 139371#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 139369#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 139366#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 139346#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 139355#$Ultimate##0 ~n := #in~n; 139351#L25 assume !(~n <= 0); 139338#L26 call #t~ret0 := fact(~n - 1);< 139340#$Ultimate##0 ~n := #in~n; 139434#L25 assume ~n <= 0;#res := 1; 139345#factFINAL assume true; 139336#factEXIT >#66#return; 139339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139448#factFINAL assume true; 139443#factEXIT >#74#return; 139215#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 139415#$Ultimate##0 ~n := #in~n; 140068#L25 assume ~n <= 0;#res := 1; 140067#factFINAL assume true; 139214#factEXIT >#76#return; 139216#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 140252#$Ultimate##0 ~n := #in~n; 140311#L25 assume !(~n <= 0); 140308#L26 call #t~ret0 := fact(~n - 1);< 140309#$Ultimate##0 ~n := #in~n; 140312#L25 assume ~n <= 0;#res := 1; 140310#factFINAL assume true; 140307#factEXIT >#66#return; 140305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139219#factFINAL assume true; 139220#factEXIT >#78#return; 138781#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 138779#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 138778#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 138370#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 138371#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 138321#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 138323#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 138416#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 138283#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 138284#$Ultimate##0 ~n := #in~n; 139190#L25 assume ~n <= 0;#res := 1; 139189#factFINAL assume true; 139188#factEXIT >#68#return; 138351#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 138352#$Ultimate##0 ~n := #in~n; 139685#L25 assume ~n <= 0;#res := 1; 139684#factFINAL assume true; 139204#factEXIT >#70#return; 138279#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 138280#$Ultimate##0 ~n := #in~n; 139680#L25 assume ~n <= 0;#res := 1; 139679#factFINAL assume true; 139670#factEXIT >#72#return; 138325#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 138326#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 138338#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 138345#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 138336#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 138268#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 138269#$Ultimate##0 ~n := #in~n; 140335#L25 assume !(~n <= 0); 138306#L26 call #t~ret0 := fact(~n - 1);< 140422#$Ultimate##0 ~n := #in~n; 138348#L25 assume ~n <= 0;#res := 1; 138305#factFINAL assume true; 138307#factEXIT >#66#return; 140336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 140318#factFINAL assume true; 138410#factEXIT >#74#return; 138414#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 138361#$Ultimate##0 ~n := #in~n; 140334#L25 assume ~n <= 0;#res := 1; 140333#factFINAL assume true; 140319#factEXIT >#76#return; 138356#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 138355#$Ultimate##0 ~n := #in~n; 138357#L25 assume !(~n <= 0); 138306#L26 call #t~ret0 := fact(~n - 1);< 140422#$Ultimate##0 ~n := #in~n; 138348#L25 assume ~n <= 0;#res := 1; 138305#factFINAL assume true; 138307#factEXIT >#66#return; 140336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 140318#factFINAL assume true; 138410#factEXIT >#78#return; 138409#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 138408#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 138406#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 138407#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 138329#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 138330#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 138477#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 138478#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 138444#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 138472#$Ultimate##0 ~n := #in~n; 138474#L25 assume !(~n <= 0); 138475#L26 call #t~ret0 := fact(~n - 1);< 138773#$Ultimate##0 ~n := #in~n; 138777#L25 assume !(~n <= 0); 138948#L26 call #t~ret0 := fact(~n - 1);< 138951#$Ultimate##0 ~n := #in~n; 138777#L25 assume !(~n <= 0); 138948#L26 call #t~ret0 := fact(~n - 1);< 138951#$Ultimate##0 ~n := #in~n; 138777#L25 assume !(~n <= 0); 138948#L26 call #t~ret0 := fact(~n - 1);< 138951#$Ultimate##0 ~n := #in~n; 138777#L25 assume !(~n <= 0); 138948#L26 call #t~ret0 := fact(~n - 1);< 138951#$Ultimate##0 ~n := #in~n; 138954#L25 assume ~n <= 0;#res := 1; 138955#factFINAL assume true; 138953#factEXIT >#66#return; 138952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138950#factFINAL assume true; 138947#factEXIT >#66#return; 138949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139007#factFINAL assume true; 139005#factEXIT >#66#return; 139006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139004#factFINAL assume true; 139001#factEXIT >#66#return; 139000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138998#factFINAL assume true; 138996#factEXIT >#66#return; 138994#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138993#factFINAL assume true; 138991#factEXIT >#68#return; 138448#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 138472#$Ultimate##0 ~n := #in~n; 138474#L25 assume ~n <= 0;#res := 1; 138473#factFINAL assume true; 138442#factEXIT >#70#return; 138463#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 138963#$Ultimate##0 ~n := #in~n; 139062#L25 assume !(~n <= 0); 139015#L26 call #t~ret0 := fact(~n - 1);< 139026#$Ultimate##0 ~n := #in~n; 139073#L25 assume !(~n <= 0); 139016#L26 call #t~ret0 := fact(~n - 1);< 139031#$Ultimate##0 ~n := #in~n; 139090#L25 assume !(~n <= 0); 138975#L26 call #t~ret0 := fact(~n - 1);< 138988#$Ultimate##0 ~n := #in~n; 139085#L25 assume !(~n <= 0); 138980#L26 call #t~ret0 := fact(~n - 1);< 139020#$Ultimate##0 ~n := #in~n; 138912#L25 assume !(~n <= 0); 138981#L26 call #t~ret0 := fact(~n - 1);< 139078#$Ultimate##0 ~n := #in~n; 139080#L25 assume ~n <= 0;#res := 1; 139079#factFINAL assume true; 139077#factEXIT >#66#return; 139071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139067#factFINAL assume true; 139058#factEXIT >#66#return; 139060#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139074#factFINAL assume true; 138974#factEXIT >#66#return; 138984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139032#factFINAL assume true; 139029#factEXIT >#66#return; 139027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139022#factFINAL assume true; 139012#factEXIT >#66#return; 139019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139072#factFINAL assume true; 138964#factEXIT >#72#return; 138899#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 138897#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 138896#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 138895#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 138885#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 138846#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 138869#$Ultimate##0 ~n := #in~n; 138881#L25 assume !(~n <= 0); 138882#L26 call #t~ret0 := fact(~n - 1);< 138894#$Ultimate##0 ~n := #in~n; 138912#L25 assume !(~n <= 0); 138981#L26 call #t~ret0 := fact(~n - 1);< 139078#$Ultimate##0 ~n := #in~n; 138912#L25 assume !(~n <= 0); 138981#L26 call #t~ret0 := fact(~n - 1);< 139078#$Ultimate##0 ~n := #in~n; 138912#L25 assume !(~n <= 0); 138981#L26 call #t~ret0 := fact(~n - 1);< 139078#$Ultimate##0 ~n := #in~n; 138912#L25 assume !(~n <= 0); 138981#L26 call #t~ret0 := fact(~n - 1);< 139078#$Ultimate##0 ~n := #in~n; 138912#L25 assume !(~n <= 0); 138981#L26 call #t~ret0 := fact(~n - 1);< 139078#$Ultimate##0 ~n := #in~n; 139080#L25 assume ~n <= 0;#res := 1; 139079#factFINAL assume true; 139077#factEXIT >#66#return; 139071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139067#factFINAL assume true; 139058#factEXIT >#66#return; 139060#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139074#factFINAL assume true; 138974#factEXIT >#66#return; 138984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139032#factFINAL assume true; 139029#factEXIT >#66#return; 139027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139022#factFINAL assume true; 139012#factEXIT >#66#return; 139017#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139120#factFINAL assume true; 139116#factEXIT >#66#return; 139119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 139169#factFINAL assume true; 138932#factEXIT >#68#return; 138850#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 138869#$Ultimate##0 ~n := #in~n; 138881#L25 assume ~n <= 0;#res := 1; 138870#factFINAL assume true; 138844#factEXIT >#70#return; 138289#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 138353#$Ultimate##0 ~n := #in~n; 138354#L25 assume !(~n <= 0); 138581#L26 call #t~ret0 := fact(~n - 1);< 138619#$Ultimate##0 ~n := #in~n; 138616#L25 assume !(~n <= 0); 138494#L26 call #t~ret0 := fact(~n - 1);< 138579#$Ultimate##0 ~n := #in~n; 138575#L25 assume !(~n <= 0); 138495#L26 call #t~ret0 := fact(~n - 1);< 138572#$Ultimate##0 ~n := #in~n; 138568#L25 assume !(~n <= 0); 138480#L26 call #t~ret0 := fact(~n - 1);< 138565#$Ultimate##0 ~n := #in~n; 138562#L25 assume !(~n <= 0); 138498#L26 call #t~ret0 := fact(~n - 1);< 138557#$Ultimate##0 ~n := #in~n; 138539#L25 assume !(~n <= 0); 138486#L26 call #t~ret0 := fact(~n - 1);< 138561#$Ultimate##0 ~n := #in~n; 138539#L25 assume !(~n <= 0); 138486#L26 call #t~ret0 := fact(~n - 1);< 138561#$Ultimate##0 ~n := #in~n; 138539#L25 assume !(~n <= 0); 138486#L26 call #t~ret0 := fact(~n - 1);< 138561#$Ultimate##0 ~n := #in~n; 138566#L25 assume ~n <= 0;#res := 1; 138563#factFINAL assume true; 138560#factEXIT >#66#return; 138559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138556#factFINAL assume true; 138546#factEXIT >#66#return; 138550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138639#factFINAL assume true; 138632#factEXIT >#66#return; 138633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138663#factFINAL assume true; 138647#factEXIT >#66#return; 138648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138674#factFINAL assume true; 138479#factEXIT >#66#return; 138504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138672#factFINAL assume true; 138664#factEXIT >#66#return; 138658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138657#factFINAL assume true; 138651#factEXIT >#66#return; 138652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138673#factFINAL assume true; 138668#factEXIT >#66#return; 138339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138285#factFINAL assume true; 138304#factEXIT >#72#return; 138819#L30-3 [2023-02-17 09:41:33,899 INFO L750 eck$LassoCheckResult]: Loop: 138819#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 138922#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 138921#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 138920#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 138791#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 138698#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 138350#$Ultimate##0 ~n := #in~n; 138746#L25 assume !(~n <= 0); 138492#L26 call #t~ret0 := fact(~n - 1);< 138535#$Ultimate##0 ~n := #in~n; 138539#L25 assume !(~n <= 0); 138486#L26 call #t~ret0 := fact(~n - 1);< 138561#$Ultimate##0 ~n := #in~n; 138539#L25 assume !(~n <= 0); 138486#L26 call #t~ret0 := fact(~n - 1);< 138561#$Ultimate##0 ~n := #in~n; 138539#L25 assume !(~n <= 0); 138486#L26 call #t~ret0 := fact(~n - 1);< 138561#$Ultimate##0 ~n := #in~n; 138566#L25 assume ~n <= 0;#res := 1; 138563#factFINAL assume true; 138560#factEXIT >#66#return; 138559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138556#factFINAL assume true; 138546#factEXIT >#66#return; 138550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138639#factFINAL assume true; 138632#factEXIT >#66#return; 138633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138663#factFINAL assume true; 138647#factEXIT >#66#return; 138650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138807#factFINAL assume true; 138806#factEXIT >#68#return; 138704#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 138350#$Ultimate##0 ~n := #in~n; 138746#L25 assume !(~n <= 0); 138492#L26 call #t~ret0 := fact(~n - 1);< 138535#$Ultimate##0 ~n := #in~n; 138538#L25 assume ~n <= 0;#res := 1; 138536#factFINAL assume true; 138529#factEXIT >#66#return; 138530#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138743#factFINAL assume true; 138738#factEXIT >#70#return; 138589#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 138682#$Ultimate##0 ~n := #in~n; 138683#L25 assume !(~n <= 0); 138483#L26 call #t~ret0 := fact(~n - 1);< 138535#$Ultimate##0 ~n := #in~n; 138539#L25 assume !(~n <= 0); 138486#L26 call #t~ret0 := fact(~n - 1);< 138561#$Ultimate##0 ~n := #in~n; 138566#L25 assume ~n <= 0;#res := 1; 138563#factFINAL assume true; 138560#factEXIT >#66#return; 138559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138556#factFINAL assume true; 138546#factEXIT >#66#return; 138547#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 138834#factFINAL assume true; 138818#factEXIT >#72#return; 138819#L30-3 [2023-02-17 09:41:33,900 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:33,900 INFO L85 PathProgramCache]: Analyzing trace with hash 1670326159, now seen corresponding path program 6 times [2023-02-17 09:41:33,900 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:33,900 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [841708870] [2023-02-17 09:41:33,900 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:33,900 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:33,910 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:33,910 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1385246268] [2023-02-17 09:41:33,910 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:33,910 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:33,910 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:33,917 INFO L229 MonitoredProcess]: Starting monitored process 153 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:33,937 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (153)] Waiting until timeout for monitored process [2023-02-17 09:41:34,124 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2023-02-17 09:41:34,125 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:34,126 INFO L263 TraceCheckSpWp]: Trace formula consists of 357 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-17 09:41:34,130 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:34,169 INFO L134 CoverageAnalysis]: Checked inductivity of 4982 backedges. 2075 proven. 43 refuted. 0 times theorem prover too weak. 2864 trivial. 0 not checked. [2023-02-17 09:41:34,170 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:34,234 INFO L134 CoverageAnalysis]: Checked inductivity of 4982 backedges. 315 proven. 136 refuted. 0 times theorem prover too weak. 4531 trivial. 0 not checked. [2023-02-17 09:41:34,235 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:34,235 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [841708870] [2023-02-17 09:41:34,235 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:34,235 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1385246268] [2023-02-17 09:41:34,235 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1385246268] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:34,235 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:34,236 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 13 [2023-02-17 09:41:34,236 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2102645585] [2023-02-17 09:41:34,236 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:34,236 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:34,237 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:34,237 INFO L85 PathProgramCache]: Analyzing trace with hash 1458032680, now seen corresponding path program 2 times [2023-02-17 09:41:34,237 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:34,237 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1662028923] [2023-02-17 09:41:34,237 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:34,237 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:34,241 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:34,241 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [15503803] [2023-02-17 09:41:34,241 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:34,241 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:34,241 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:34,245 INFO L229 MonitoredProcess]: Starting monitored process 154 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:34,245 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (154)] Waiting until timeout for monitored process [2023-02-17 09:41:34,387 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:34,387 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:34,388 INFO L263 TraceCheckSpWp]: Trace formula consists of 137 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:41:34,389 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:34,437 INFO L134 CoverageAnalysis]: Checked inductivity of 222 backedges. 43 proven. 107 refuted. 0 times theorem prover too weak. 72 trivial. 0 not checked. [2023-02-17 09:41:34,437 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:34,602 INFO L134 CoverageAnalysis]: Checked inductivity of 222 backedges. 43 proven. 126 refuted. 0 times theorem prover too weak. 53 trivial. 0 not checked. [2023-02-17 09:41:34,602 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:34,602 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1662028923] [2023-02-17 09:41:34,603 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:34,603 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [15503803] [2023-02-17 09:41:34,603 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [15503803] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:34,603 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:34,603 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 17] total 20 [2023-02-17 09:41:34,603 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [310961859] [2023-02-17 09:41:34,603 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:34,604 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:34,604 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:34,604 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2023-02-17 09:41:34,605 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=347, Unknown=0, NotChecked=0, Total=420 [2023-02-17 09:41:34,605 INFO L87 Difference]: Start difference. First operand 2158 states and 3977 transitions. cyclomatic complexity: 1847 Second operand has 21 states, 17 states have (on average 2.411764705882353) internal successors, (41), 17 states have internal predecessors, (41), 12 states have call successors, (12), 1 states have call predecessors, (12), 8 states have return successors, (16), 10 states have call predecessors, (16), 12 states have call successors, (16) [2023-02-17 09:41:35,092 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:35,092 INFO L93 Difference]: Finished difference Result 2842 states and 5274 transitions. [2023-02-17 09:41:35,092 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2842 states and 5274 transitions. [2023-02-17 09:41:35,112 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 340 [2023-02-17 09:41:35,143 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2842 states to 2837 states and 5268 transitions. [2023-02-17 09:41:35,143 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 819 [2023-02-17 09:41:35,144 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 819 [2023-02-17 09:41:35,144 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2837 states and 5268 transitions. [2023-02-17 09:41:35,144 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:35,145 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2837 states and 5268 transitions. [2023-02-17 09:41:35,146 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2837 states and 5268 transitions. [2023-02-17 09:41:35,194 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2837 to 2158. [2023-02-17 09:41:35,196 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2158 states, 1331 states have (on average 1.035311795642374) internal successors, (1378), 1332 states have internal predecessors, (1378), 507 states have call successors, (560), 274 states have call predecessors, (560), 320 states have return successors, (2038), 551 states have call predecessors, (2038), 507 states have call successors, (2038) [2023-02-17 09:41:35,206 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2158 states to 2158 states and 3976 transitions. [2023-02-17 09:41:35,206 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2158 states and 3976 transitions. [2023-02-17 09:41:35,207 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2023-02-17 09:41:35,207 INFO L428 stractBuchiCegarLoop]: Abstraction has 2158 states and 3976 transitions. [2023-02-17 09:41:35,207 INFO L335 stractBuchiCegarLoop]: ======== Iteration 30 ============ [2023-02-17 09:41:35,207 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2158 states and 3976 transitions. [2023-02-17 09:41:35,215 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 168 [2023-02-17 09:41:35,215 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:35,215 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:35,216 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [44, 44, 26, 26, 26, 26, 18, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:35,216 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:35,217 INFO L748 eck$LassoCheckResult]: Stem: 145564#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 145509#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 145510#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 145529#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 145565#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 146377#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 145575#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 145576#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 146144#$Ultimate##0 ~n := #in~n; 146145#L25 assume ~n <= 0;#res := 1; 146139#factFINAL assume true; 146140#factEXIT >#68#return; 145553#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 145554#$Ultimate##0 ~n := #in~n; 146399#L25 assume ~n <= 0;#res := 1; 146400#factFINAL assume true; 146396#factEXIT >#70#return; 145483#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 145484#$Ultimate##0 ~n := #in~n; 146834#L25 assume ~n <= 0;#res := 1; 146833#factFINAL assume true; 146420#factEXIT >#72#return; 146421#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 146830#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 146824#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 146822#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 146820#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 146817#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 146818#$Ultimate##0 ~n := #in~n; 146831#L25 assume !(~n <= 0); 146827#L26 call #t~ret0 := fact(~n - 1);< 146829#$Ultimate##0 ~n := #in~n; 146840#L25 assume ~n <= 0;#res := 1; 146838#factFINAL assume true; 146825#factEXIT >#66#return; 146823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146821#factFINAL assume true; 146816#factEXIT >#74#return; 146441#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 146810#$Ultimate##0 ~n := #in~n; 146446#L25 assume ~n <= 0;#res := 1; 146447#factFINAL assume true; 146440#factEXIT >#76#return; 146324#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 146325#$Ultimate##0 ~n := #in~n; 147528#L25 assume !(~n <= 0); 147526#L26 call #t~ret0 := fact(~n - 1);< 147527#$Ultimate##0 ~n := #in~n; 147530#L25 assume ~n <= 0;#res := 1; 147529#factFINAL assume true; 147525#factEXIT >#66#return; 147524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 147522#factFINAL assume true; 147521#factEXIT >#78#return; 146321#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 146168#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 146164#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 145572#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 145573#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 146127#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 145522#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 146376#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 146135#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 146137#$Ultimate##0 ~n := #in~n; 146141#L25 assume ~n <= 0;#res := 1; 146142#factFINAL assume true; 146134#factEXIT >#68#return; 146136#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 146832#$Ultimate##0 ~n := #in~n; 146837#L25 assume ~n <= 0;#res := 1; 146397#factFINAL assume true; 146398#factEXIT >#70#return; 146423#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 146426#$Ultimate##0 ~n := #in~n; 146425#L25 assume ~n <= 0;#res := 1; 146422#factFINAL assume true; 146424#factEXIT >#72#return; 145525#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 145526#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 145543#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 145549#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 145550#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 146434#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 145465#$Ultimate##0 ~n := #in~n; 147547#L25 assume !(~n <= 0); 145503#L26 call #t~ret0 := fact(~n - 1);< 147571#$Ultimate##0 ~n := #in~n; 147577#L25 assume ~n <= 0;#res := 1; 147576#factFINAL assume true; 147570#factEXIT >#66#return; 147568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 147566#factFINAL assume true; 147564#factEXIT >#74#return; 147541#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 145561#$Ultimate##0 ~n := #in~n; 147548#L25 assume ~n <= 0;#res := 1; 147535#factFINAL assume true; 147542#factEXIT >#76#return; 146431#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 147556#$Ultimate##0 ~n := #in~n; 147551#L25 assume !(~n <= 0); 145503#L26 call #t~ret0 := fact(~n - 1);< 147571#$Ultimate##0 ~n := #in~n; 147577#L25 assume ~n <= 0;#res := 1; 147576#factFINAL assume true; 147570#factEXIT >#66#return; 147568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 147566#factFINAL assume true; 147564#factEXIT >#78#return; 147565#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 147573#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 147572#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 147569#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 145528#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 145521#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 145523#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 145936#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 145671#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 145701#$Ultimate##0 ~n := #in~n; 145704#L25 assume !(~n <= 0); 145705#L26 call #t~ret0 := fact(~n - 1);< 145924#$Ultimate##0 ~n := #in~n; 145929#L25 assume !(~n <= 0); 146098#L26 call #t~ret0 := fact(~n - 1);< 146103#$Ultimate##0 ~n := #in~n; 145929#L25 assume !(~n <= 0); 146098#L26 call #t~ret0 := fact(~n - 1);< 146103#$Ultimate##0 ~n := #in~n; 145929#L25 assume !(~n <= 0); 146098#L26 call #t~ret0 := fact(~n - 1);< 146103#$Ultimate##0 ~n := #in~n; 145929#L25 assume !(~n <= 0); 146098#L26 call #t~ret0 := fact(~n - 1);< 146103#$Ultimate##0 ~n := #in~n; 145929#L25 assume !(~n <= 0); 146098#L26 call #t~ret0 := fact(~n - 1);< 146103#$Ultimate##0 ~n := #in~n; 145929#L25 assume !(~n <= 0); 146098#L26 call #t~ret0 := fact(~n - 1);< 146103#$Ultimate##0 ~n := #in~n; 146108#L25 assume ~n <= 0;#res := 1; 146123#factFINAL assume true; 146122#factEXIT >#66#return; 146121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146120#factFINAL assume true; 146118#factEXIT >#66#return; 146117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146116#factFINAL assume true; 146115#factEXIT >#66#return; 146114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146113#factFINAL assume true; 146111#factEXIT >#66#return; 146110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146109#factFINAL assume true; 146106#factEXIT >#66#return; 146105#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146102#factFINAL assume true; 146097#factEXIT >#66#return; 146099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146158#factFINAL assume true; 146156#factEXIT >#66#return; 146157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146295#factFINAL assume true; 146292#factEXIT >#68#return; 145683#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 145701#$Ultimate##0 ~n := #in~n; 145704#L25 assume ~n <= 0;#res := 1; 145703#factFINAL assume true; 145670#factEXIT >#70#return; 145698#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 146286#$Ultimate##0 ~n := #in~n; 146348#L25 assume !(~n <= 0); 146189#L26 call #t~ret0 := fact(~n - 1);< 146208#$Ultimate##0 ~n := #in~n; 146320#L25 assume !(~n <= 0); 146182#L26 call #t~ret0 := fact(~n - 1);< 146216#$Ultimate##0 ~n := #in~n; 146317#L25 assume !(~n <= 0); 146179#L26 call #t~ret0 := fact(~n - 1);< 146223#$Ultimate##0 ~n := #in~n; 146311#L25 assume !(~n <= 0); 146180#L26 call #t~ret0 := fact(~n - 1);< 146230#$Ultimate##0 ~n := #in~n; 146249#L25 assume !(~n <= 0); 146183#L26 call #t~ret0 := fact(~n - 1);< 146232#$Ultimate##0 ~n := #in~n; 146328#L25 assume !(~n <= 0); 146186#L26 call #t~ret0 := fact(~n - 1);< 146200#$Ultimate##0 ~n := #in~n; 146046#L25 assume !(~n <= 0); 146185#L26 call #t~ret0 := fact(~n - 1);< 146245#$Ultimate##0 ~n := #in~n; 146247#L25 assume ~n <= 0;#res := 1; 146246#factFINAL assume true; 146244#factEXIT >#66#return; 146243#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146242#factFINAL assume true; 146238#factEXIT >#66#return; 146237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146236#factFINAL assume true; 146234#factEXIT >#66#return; 146233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146231#factFINAL assume true; 146226#factEXIT >#66#return; 146225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146224#factFINAL assume true; 146219#factEXIT >#66#return; 146218#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146217#factFINAL assume true; 146211#factEXIT >#66#return; 146210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146209#factFINAL assume true; 146204#factEXIT >#66#return; 146206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146346#factFINAL assume true; 146341#factEXIT >#72#return; 146335#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 146330#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 146269#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 146268#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 146031#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 145993#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 146014#$Ultimate##0 ~n := #in~n; 146019#L25 assume !(~n <= 0); 146020#L26 call #t~ret0 := fact(~n - 1);< 146041#$Ultimate##0 ~n := #in~n; 146044#L25 assume ~n <= 0;#res := 1; 146042#factFINAL assume true; 146034#factEXIT >#66#return; 146033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146030#factFINAL assume true; 146021#factEXIT >#68#return; 146000#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 146014#$Ultimate##0 ~n := #in~n; 146019#L25 assume ~n <= 0;#res := 1; 146016#factFINAL assume true; 145983#factEXIT >#70#return; 145489#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 145981#$Ultimate##0 ~n := #in~n; 146018#L25 assume !(~n <= 0); 145643#L26 call #t~ret0 := fact(~n - 1);< 145727#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145966#L25 assume ~n <= 0;#res := 1; 145965#factFINAL assume true; 145963#factEXIT >#66#return; 145961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145708#factFINAL assume true; 145709#factEXIT >#66#return; 145738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145768#factFINAL assume true; 145763#factEXIT >#66#return; 145761#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145758#factFINAL assume true; 145751#factEXIT >#66#return; 145754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145893#factFINAL assume true; 145623#factEXIT >#66#return; 145650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145809#factFINAL assume true; 145804#factEXIT >#66#return; 145803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145800#factFINAL assume true; 145786#factEXIT >#66#return; 145788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146410#factFINAL assume true; 146405#factEXIT >#72#return; 145476#L30-3 [2023-02-17 09:41:35,217 INFO L750 eck$LassoCheckResult]: Loop: 145476#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 145524#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 145542#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 145562#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 145933#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 145858#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 145552#$Ultimate##0 ~n := #in~n; 145926#L25 assume !(~n <= 0); 145641#L26 call #t~ret0 := fact(~n - 1);< 145727#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145966#L25 assume ~n <= 0;#res := 1; 145965#factFINAL assume true; 145963#factEXIT >#66#return; 145961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145708#factFINAL assume true; 145709#factEXIT >#66#return; 145740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145956#factFINAL assume true; 145946#factEXIT >#68#return; 145859#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 145552#$Ultimate##0 ~n := #in~n; 145926#L25 assume !(~n <= 0); 145641#L26 call #t~ret0 := fact(~n - 1);< 145727#$Ultimate##0 ~n := #in~n; 145730#L25 assume ~n <= 0;#res := 1; 145728#factFINAL assume true; 145721#factEXIT >#66#return; 145726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145919#factFINAL assume true; 145890#factEXIT >#70#return; 145469#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 145930#$Ultimate##0 ~n := #in~n; 145931#L25 assume !(~n <= 0); 145638#L26 call #t~ret0 := fact(~n - 1);< 145727#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145731#L25 assume !(~n <= 0); 145636#L26 call #t~ret0 := fact(~n - 1);< 145964#$Ultimate##0 ~n := #in~n; 145966#L25 assume ~n <= 0;#res := 1; 145965#factFINAL assume true; 145963#factEXIT >#66#return; 145961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145708#factFINAL assume true; 145709#factEXIT >#66#return; 145738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 145768#factFINAL assume true; 145763#factEXIT >#66#return; 145653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 146414#factFINAL assume true; 146401#factEXIT >#72#return; 145476#L30-3 [2023-02-17 09:41:35,217 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:35,218 INFO L85 PathProgramCache]: Analyzing trace with hash -646862049, now seen corresponding path program 7 times [2023-02-17 09:41:35,218 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:35,218 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [634776348] [2023-02-17 09:41:35,218 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:35,219 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:35,229 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:35,229 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1768138506] [2023-02-17 09:41:35,230 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:41:35,230 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:35,230 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:35,233 INFO L229 MonitoredProcess]: Starting monitored process 155 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:35,234 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (155)] Waiting until timeout for monitored process [2023-02-17 09:41:35,465 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:35,468 INFO L263 TraceCheckSpWp]: Trace formula consists of 640 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:35,471 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:35,488 INFO L134 CoverageAnalysis]: Checked inductivity of 4520 backedges. 1439 proven. 1 refuted. 0 times theorem prover too weak. 3080 trivial. 0 not checked. [2023-02-17 09:41:35,488 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:35,515 INFO L134 CoverageAnalysis]: Checked inductivity of 4520 backedges. 83 proven. 106 refuted. 0 times theorem prover too weak. 4331 trivial. 0 not checked. [2023-02-17 09:41:35,515 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:35,515 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [634776348] [2023-02-17 09:41:35,515 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:35,515 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1768138506] [2023-02-17 09:41:35,515 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1768138506] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:35,516 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:35,516 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2023-02-17 09:41:35,516 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [925269595] [2023-02-17 09:41:35,516 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:35,517 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:35,541 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:35,541 INFO L85 PathProgramCache]: Analyzing trace with hash -1479735504, now seen corresponding path program 3 times [2023-02-17 09:41:35,541 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:35,541 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2042460501] [2023-02-17 09:41:35,541 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:35,541 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:35,545 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:35,545 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1001266281] [2023-02-17 09:41:35,546 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:35,546 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:35,546 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:35,549 INFO L229 MonitoredProcess]: Starting monitored process 156 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:35,550 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (156)] Waiting until timeout for monitored process [2023-02-17 09:41:35,680 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2023-02-17 09:41:35,681 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:35,681 INFO L263 TraceCheckSpWp]: Trace formula consists of 115 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:41:35,682 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:35,724 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 32 proven. 88 refuted. 0 times theorem prover too weak. 54 trivial. 0 not checked. [2023-02-17 09:41:35,724 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:35,869 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 32 proven. 98 refuted. 0 times theorem prover too weak. 44 trivial. 0 not checked. [2023-02-17 09:41:35,869 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:35,869 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2042460501] [2023-02-17 09:41:35,869 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:35,869 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1001266281] [2023-02-17 09:41:35,869 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1001266281] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:35,869 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:35,869 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 15] total 20 [2023-02-17 09:41:35,870 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1511233341] [2023-02-17 09:41:35,870 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:35,870 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:35,870 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:35,870 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2023-02-17 09:41:35,870 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=349, Unknown=0, NotChecked=0, Total=420 [2023-02-17 09:41:35,871 INFO L87 Difference]: Start difference. First operand 2158 states and 3976 transitions. cyclomatic complexity: 1846 Second operand has 21 states, 16 states have (on average 2.4375) internal successors, (39), 16 states have internal predecessors, (39), 12 states have call successors, (12), 1 states have call predecessors, (12), 8 states have return successors, (15), 11 states have call predecessors, (15), 12 states have call successors, (15) [2023-02-17 09:41:36,381 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:36,381 INFO L93 Difference]: Finished difference Result 2778 states and 4922 transitions. [2023-02-17 09:41:36,381 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2778 states and 4922 transitions. [2023-02-17 09:41:36,396 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 386 [2023-02-17 09:41:36,416 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2778 states to 2774 states and 4912 transitions. [2023-02-17 09:41:36,416 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 901 [2023-02-17 09:41:36,417 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 904 [2023-02-17 09:41:36,417 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2774 states and 4912 transitions. [2023-02-17 09:41:36,417 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:36,418 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2774 states and 4912 transitions. [2023-02-17 09:41:36,419 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2774 states and 4912 transitions. [2023-02-17 09:41:36,464 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2774 to 2224. [2023-02-17 09:41:36,467 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2224 states, 1353 states have (on average 1.0391722099039171) internal successors, (1406), 1350 states have internal predecessors, (1406), 550 states have call successors, (603), 286 states have call predecessors, (603), 321 states have return successors, (2163), 587 states have call predecessors, (2163), 550 states have call successors, (2163) [2023-02-17 09:41:36,477 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2224 states to 2224 states and 4172 transitions. [2023-02-17 09:41:36,477 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2224 states and 4172 transitions. [2023-02-17 09:41:36,477 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2023-02-17 09:41:36,477 INFO L428 stractBuchiCegarLoop]: Abstraction has 2224 states and 4172 transitions. [2023-02-17 09:41:36,478 INFO L335 stractBuchiCegarLoop]: ======== Iteration 31 ============ [2023-02-17 09:41:36,478 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2224 states and 4172 transitions. [2023-02-17 09:41:36,485 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 192 [2023-02-17 09:41:36,485 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:36,485 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:36,487 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [42, 42, 24, 24, 24, 24, 18, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:36,487 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [17, 17, 14, 14, 14, 14, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:36,487 INFO L748 eck$LassoCheckResult]: Stem: 152592#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 152524#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 152525#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 152548#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 152536#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 152537#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 153536#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 152522#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 152523#$Ultimate##0 ~n := #in~n; 153535#L25 assume ~n <= 0;#res := 1; 153534#factFINAL assume true; 153262#factEXIT >#68#return; 153263#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 153531#$Ultimate##0 ~n := #in~n; 153533#L25 assume ~n <= 0;#res := 1; 153461#factFINAL assume true; 153462#factEXIT >#70#return; 152502#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 152503#$Ultimate##0 ~n := #in~n; 153522#L25 assume ~n <= 0;#res := 1; 153523#factFINAL assume true; 153518#factEXIT >#72#return; 153519#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 152564#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 152565#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 153763#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 153760#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 153741#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 153751#$Ultimate##0 ~n := #in~n; 153752#L25 assume !(~n <= 0); 153733#L26 call #t~ret0 := fact(~n - 1);< 153735#$Ultimate##0 ~n := #in~n; 153744#L25 assume ~n <= 0;#res := 1; 153740#factFINAL assume true; 153731#factEXIT >#66#return; 153734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153758#factFINAL assume true; 153750#factEXIT >#74#return; 153510#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 153738#$Ultimate##0 ~n := #in~n; 153526#L25 assume ~n <= 0;#res := 1; 153525#factFINAL assume true; 153509#factEXIT >#76#return; 153409#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 153410#$Ultimate##0 ~n := #in~n; 153814#L25 assume !(~n <= 0); 153812#L26 call #t~ret0 := fact(~n - 1);< 153813#$Ultimate##0 ~n := #in~n; 153821#L25 assume ~n <= 0;#res := 1; 153816#factFINAL assume true; 153811#factEXIT >#66#return; 153809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153807#factFINAL assume true; 153787#factEXIT >#78#return; 153406#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 153403#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 153402#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 152757#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 152546#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 152547#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 152539#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 152621#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 152622#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 153274#$Ultimate##0 ~n := #in~n; 153271#L25 assume ~n <= 0;#res := 1; 153267#factFINAL assume true; 153268#factEXIT >#68#return; 152578#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 152579#$Ultimate##0 ~n := #in~n; 153463#L25 assume ~n <= 0;#res := 1; 153464#factFINAL assume true; 153459#factEXIT >#70#return; 153460#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 153530#$Ultimate##0 ~n := #in~n; 153532#L25 assume ~n <= 0;#res := 1; 153520#factFINAL assume true; 153521#factEXIT >#72#return; 153516#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 153517#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 153529#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 153528#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 153524#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 153488#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 153515#$Ultimate##0 ~n := #in~n; 154691#L25 assume !(~n <= 0); 152518#L26 call #t~ret0 := fact(~n - 1);< 154696#$Ultimate##0 ~n := #in~n; 154698#L25 assume ~n <= 0;#res := 1; 152517#factFINAL assume true; 152519#factEXIT >#66#return; 154610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154695#factFINAL assume true; 154693#factEXIT >#74#return; 154614#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 152589#$Ultimate##0 ~n := #in~n; 154625#L25 assume ~n <= 0;#res := 1; 154613#factFINAL assume true; 154621#factEXIT >#76#return; 153491#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 153495#$Ultimate##0 ~n := #in~n; 154697#L25 assume !(~n <= 0); 152518#L26 call #t~ret0 := fact(~n - 1);< 154696#$Ultimate##0 ~n := #in~n; 154698#L25 assume ~n <= 0;#res := 1; 152517#factFINAL assume true; 152519#factEXIT >#66#return; 154610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 154695#factFINAL assume true; 154693#factEXIT >#78#return; 154694#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 154706#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 154705#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 154704#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 153379#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 152538#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 152540#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 152860#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 152704#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 152726#$Ultimate##0 ~n := #in~n; 152729#L25 assume !(~n <= 0); 152730#L26 call #t~ret0 := fact(~n - 1);< 153098#$Ultimate##0 ~n := #in~n; 152879#L25 assume !(~n <= 0); 152869#L26 call #t~ret0 := fact(~n - 1);< 152876#$Ultimate##0 ~n := #in~n; 152879#L25 assume !(~n <= 0); 152869#L26 call #t~ret0 := fact(~n - 1);< 152876#$Ultimate##0 ~n := #in~n; 152903#L25 assume ~n <= 0;#res := 1; 153038#factFINAL assume true; 153037#factEXIT >#66#return; 153035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153034#factFINAL assume true; 153032#factEXIT >#66#return; 153031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153030#factFINAL assume true; 153029#factEXIT >#66#return; 153026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153356#factFINAL assume true; 153355#factEXIT >#68#return; 152706#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 152726#$Ultimate##0 ~n := #in~n; 152729#L25 assume ~n <= 0;#res := 1; 152728#factFINAL assume true; 152695#factEXIT >#70#return; 152720#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 153307#$Ultimate##0 ~n := #in~n; 153397#L25 assume !(~n <= 0); 153160#L26 call #t~ret0 := fact(~n - 1);< 153191#$Ultimate##0 ~n := #in~n; 153221#L25 assume !(~n <= 0); 153152#L26 call #t~ret0 := fact(~n - 1);< 153172#$Ultimate##0 ~n := #in~n; 153223#L25 assume !(~n <= 0); 153165#L26 call #t~ret0 := fact(~n - 1);< 153217#$Ultimate##0 ~n := #in~n; 153220#L25 assume ~n <= 0;#res := 1; 153219#factFINAL assume true; 153214#factEXIT >#66#return; 153211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153206#factFINAL assume true; 153197#factEXIT >#66#return; 153196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153195#factFINAL assume true; 153193#factEXIT >#66#return; 153186#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153401#factFINAL assume true; 153383#factEXIT >#72#return; 153380#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 153378#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 153377#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 153376#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 153135#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 153123#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 153131#$Ultimate##0 ~n := #in~n; 153133#L25 assume !(~n <= 0); 153134#L26 call #t~ret0 := fact(~n - 1);< 153280#$Ultimate##0 ~n := #in~n; 153223#L25 assume !(~n <= 0); 153165#L26 call #t~ret0 := fact(~n - 1);< 153217#$Ultimate##0 ~n := #in~n; 153223#L25 assume !(~n <= 0); 153165#L26 call #t~ret0 := fact(~n - 1);< 153217#$Ultimate##0 ~n := #in~n; 153223#L25 assume !(~n <= 0); 153165#L26 call #t~ret0 := fact(~n - 1);< 153217#$Ultimate##0 ~n := #in~n; 153223#L25 assume !(~n <= 0); 153165#L26 call #t~ret0 := fact(~n - 1);< 153217#$Ultimate##0 ~n := #in~n; 153223#L25 assume !(~n <= 0); 153165#L26 call #t~ret0 := fact(~n - 1);< 153217#$Ultimate##0 ~n := #in~n; 153220#L25 assume ~n <= 0;#res := 1; 153219#factFINAL assume true; 153214#factEXIT >#66#return; 153211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153206#factFINAL assume true; 153197#factEXIT >#66#return; 153196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153195#factFINAL assume true; 153193#factEXIT >#66#return; 153192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153188#factFINAL assume true; 153183#factEXIT >#66#return; 153182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153181#factFINAL assume true; 153176#factEXIT >#66#return; 153175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153173#factFINAL assume true; 153148#factEXIT >#66#return; 153147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153146#factFINAL assume true; 153138#factEXIT >#68#return; 153107#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 153131#$Ultimate##0 ~n := #in~n; 153133#L25 assume ~n <= 0;#res := 1; 153132#factFINAL assume true; 153106#factEXIT >#70#return; 152979#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 153080#$Ultimate##0 ~n := #in~n; 153448#L25 assume !(~n <= 0); 152651#L26 call #t~ret0 := fact(~n - 1);< 152980#$Ultimate##0 ~n := #in~n; 153008#L25 assume !(~n <= 0); 152646#L26 call #t~ret0 := fact(~n - 1);< 152842#$Ultimate##0 ~n := #in~n; 152840#L25 assume !(~n <= 0); 152644#L26 call #t~ret0 := fact(~n - 1);< 152762#$Ultimate##0 ~n := #in~n; 152760#L25 assume !(~n <= 0); 152650#L26 call #t~ret0 := fact(~n - 1);< 152818#$Ultimate##0 ~n := #in~n; 152813#L25 assume !(~n <= 0); 152639#L26 call #t~ret0 := fact(~n - 1);< 152792#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152816#L25 assume ~n <= 0;#res := 1; 152812#factFINAL assume true; 152807#factEXIT >#66#return; 152804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152791#factFINAL assume true; 152782#factEXIT >#66#return; 152784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152851#factFINAL assume true; 152844#factEXIT >#66#return; 152841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152839#factFINAL assume true; 152833#factEXIT >#66#return; 152835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153006#factFINAL assume true; 152969#factEXIT >#66#return; 152972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152974#factFINAL assume true; 152975#factEXIT >#66#return; 153003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153020#factFINAL assume true; 152963#factEXIT >#66#return; 152675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153010#factFINAL assume true; 152637#factEXIT >#66#return; 152679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153477#factFINAL assume true; 153472#factEXIT >#72#return; 152495#L30-3 [2023-02-17 09:41:36,488 INFO L750 eck$LassoCheckResult]: Loop: 152495#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 152541#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 152563#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 152566#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 152567#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 152928#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 152577#$Ultimate##0 ~n := #in~n; 153062#L25 assume !(~n <= 0); 152652#L26 call #t~ret0 := fact(~n - 1);< 152831#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152816#L25 assume ~n <= 0;#res := 1; 152812#factFINAL assume true; 152807#factEXIT >#66#return; 152804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152791#factFINAL assume true; 152782#factEXIT >#66#return; 152784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152851#factFINAL assume true; 152844#factEXIT >#66#return; 152841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152839#factFINAL assume true; 152833#factEXIT >#66#return; 152835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153006#factFINAL assume true; 152969#factEXIT >#66#return; 152972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152974#factFINAL assume true; 152975#factEXIT >#66#return; 153003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153020#factFINAL assume true; 152963#factEXIT >#66#return; 152675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153010#factFINAL assume true; 152637#factEXIT >#66#return; 152680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153317#factFINAL assume true; 153318#factEXIT >#68#return; 152951#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 152577#$Ultimate##0 ~n := #in~n; 153062#L25 assume !(~n <= 0); 152652#L26 call #t~ret0 := fact(~n - 1);< 152831#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152816#L25 assume ~n <= 0;#res := 1; 152812#factFINAL assume true; 152807#factEXIT >#66#return; 152804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152791#factFINAL assume true; 152782#factEXIT >#66#return; 152784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152851#factFINAL assume true; 152844#factEXIT >#66#return; 152845#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 153314#factFINAL assume true; 153312#factEXIT >#70#return; 152515#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 153103#$Ultimate##0 ~n := #in~n; 153102#L25 assume !(~n <= 0); 152642#L26 call #t~ret0 := fact(~n - 1);< 152831#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152815#L25 assume !(~n <= 0); 152649#L26 call #t~ret0 := fact(~n - 1);< 152810#$Ultimate##0 ~n := #in~n; 152816#L25 assume ~n <= 0;#res := 1; 152812#factFINAL assume true; 152807#factEXIT >#66#return; 152804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152791#factFINAL assume true; 152782#factEXIT >#66#return; 152784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152851#factFINAL assume true; 152844#factEXIT >#66#return; 152836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 152504#factFINAL assume true; 152516#factEXIT >#72#return; 152495#L30-3 [2023-02-17 09:41:36,488 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:36,488 INFO L85 PathProgramCache]: Analyzing trace with hash 1915525647, now seen corresponding path program 8 times [2023-02-17 09:41:36,488 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:36,488 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [973926648] [2023-02-17 09:41:36,488 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:36,488 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:36,498 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:36,498 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [526425547] [2023-02-17 09:41:36,498 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:36,498 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:36,498 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:36,509 INFO L229 MonitoredProcess]: Starting monitored process 157 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:36,524 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (157)] Waiting until timeout for monitored process [2023-02-17 09:41:36,735 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:36,735 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:36,738 INFO L263 TraceCheckSpWp]: Trace formula consists of 616 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:36,741 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:36,758 INFO L134 CoverageAnalysis]: Checked inductivity of 4082 backedges. 1359 proven. 1 refuted. 0 times theorem prover too weak. 2722 trivial. 0 not checked. [2023-02-17 09:41:36,758 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:36,786 INFO L134 CoverageAnalysis]: Checked inductivity of 4082 backedges. 83 proven. 100 refuted. 0 times theorem prover too weak. 3899 trivial. 0 not checked. [2023-02-17 09:41:36,786 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:36,786 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [973926648] [2023-02-17 09:41:36,786 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:36,786 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [526425547] [2023-02-17 09:41:36,787 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [526425547] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:36,787 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:36,787 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2023-02-17 09:41:36,787 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [974178171] [2023-02-17 09:41:36,787 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:36,788 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:36,788 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:36,788 INFO L85 PathProgramCache]: Analyzing trace with hash -1095762384, now seen corresponding path program 4 times [2023-02-17 09:41:36,788 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:36,788 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [341616670] [2023-02-17 09:41:36,788 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:36,789 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:36,794 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:36,794 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1111938713] [2023-02-17 09:41:36,794 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:36,794 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:36,795 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:36,798 INFO L229 MonitoredProcess]: Starting monitored process 158 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:36,825 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (158)] Waiting until timeout for monitored process [2023-02-17 09:41:36,972 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:36,972 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:36,974 INFO L263 TraceCheckSpWp]: Trace formula consists of 221 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-17 09:41:36,976 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:37,055 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 139 proven. 348 refuted. 0 times theorem prover too weak. 239 trivial. 0 not checked. [2023-02-17 09:41:37,056 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:37,467 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 138 proven. 431 refuted. 0 times theorem prover too weak. 157 trivial. 0 not checked. [2023-02-17 09:41:37,467 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:37,467 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [341616670] [2023-02-17 09:41:37,468 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:37,468 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1111938713] [2023-02-17 09:41:37,468 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1111938713] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:37,468 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:37,468 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 26] total 31 [2023-02-17 09:41:37,468 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1311468840] [2023-02-17 09:41:37,468 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:37,468 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:37,469 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:37,469 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2023-02-17 09:41:37,469 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=159, Invalid=833, Unknown=0, NotChecked=0, Total=992 [2023-02-17 09:41:37,469 INFO L87 Difference]: Start difference. First operand 2224 states and 4172 transitions. cyclomatic complexity: 1976 Second operand has 32 states, 27 states have (on average 2.259259259259259) internal successors, (61), 27 states have internal predecessors, (61), 18 states have call successors, (18), 1 states have call predecessors, (18), 13 states have return successors, (27), 16 states have call predecessors, (27), 18 states have call successors, (27) [2023-02-17 09:41:38,675 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:38,675 INFO L93 Difference]: Finished difference Result 3226 states and 6303 transitions. [2023-02-17 09:41:38,675 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3226 states and 6303 transitions. [2023-02-17 09:41:38,695 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 477 [2023-02-17 09:41:38,718 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3226 states to 3214 states and 6289 transitions. [2023-02-17 09:41:38,718 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1029 [2023-02-17 09:41:38,719 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1029 [2023-02-17 09:41:38,719 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3214 states and 6289 transitions. [2023-02-17 09:41:38,719 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:38,719 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3214 states and 6289 transitions. [2023-02-17 09:41:38,720 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3214 states and 6289 transitions. [2023-02-17 09:41:38,789 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3214 to 2279. [2023-02-17 09:41:38,792 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2279 states, 1376 states have (on average 1.038517441860465) internal successors, (1429), 1372 states have internal predecessors, (1429), 577 states have call successors, (630), 293 states have call predecessors, (630), 326 states have return successors, (2378), 613 states have call predecessors, (2378), 577 states have call successors, (2378) [2023-02-17 09:41:38,803 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2279 states to 2279 states and 4437 transitions. [2023-02-17 09:41:38,803 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2279 states and 4437 transitions. [2023-02-17 09:41:38,804 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2023-02-17 09:41:38,804 INFO L428 stractBuchiCegarLoop]: Abstraction has 2279 states and 4437 transitions. [2023-02-17 09:41:38,804 INFO L335 stractBuchiCegarLoop]: ======== Iteration 32 ============ [2023-02-17 09:41:38,804 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2279 states and 4437 transitions. [2023-02-17 09:41:38,814 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 208 [2023-02-17 09:41:38,814 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:38,814 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:38,816 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [49, 49, 31, 31, 31, 31, 18, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:38,816 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [14, 14, 11, 11, 11, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:38,817 INFO L748 eck$LassoCheckResult]: Stem: 160364#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 160306#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 160307#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 160326#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 160365#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 161294#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 160370#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 160371#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 161189#$Ultimate##0 ~n := #in~n; 161190#L25 assume ~n <= 0;#res := 1; 161183#factFINAL assume true; 161184#factEXIT >#68#return; 161257#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 161260#$Ultimate##0 ~n := #in~n; 161259#L25 assume ~n <= 0;#res := 1; 161256#factFINAL assume true; 161258#factEXIT >#70#return; 161326#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 161327#$Ultimate##0 ~n := #in~n; 161330#L25 assume ~n <= 0;#res := 1; 161331#factFINAL assume true; 161325#factEXIT >#72#return; 161320#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 161321#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 161615#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 161612#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 161610#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 161608#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 161609#$Ultimate##0 ~n := #in~n; 161628#L25 assume !(~n <= 0); 161618#L26 call #t~ret0 := fact(~n - 1);< 161620#$Ultimate##0 ~n := #in~n; 161625#L25 assume ~n <= 0;#res := 1; 161622#factFINAL assume true; 161616#factEXIT >#66#return; 161613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161611#factFINAL assume true; 161607#factEXIT >#74#return; 161335#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 161336#$Ultimate##0 ~n := #in~n; 161353#L25 assume ~n <= 0;#res := 1; 161352#factFINAL assume true; 161334#factEXIT >#76#return; 161270#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 161271#$Ultimate##0 ~n := #in~n; 161778#L25 assume !(~n <= 0); 161742#L26 call #t~ret0 := fact(~n - 1);< 161743#$Ultimate##0 ~n := #in~n; 161779#L25 assume ~n <= 0;#res := 1; 161773#factFINAL assume true; 161741#factEXIT >#66#return; 161738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161734#factFINAL assume true; 161269#factEXIT >#78#return; 161267#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 161266#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 161265#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 161264#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 161263#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 161262#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 160319#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 161292#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 160284#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 160285#$Ultimate##0 ~n := #in~n; 161186#L25 assume ~n <= 0;#res := 1; 161187#factFINAL assume true; 161182#factEXIT >#68#return; 160348#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 160349#$Ultimate##0 ~n := #in~n; 161637#L25 assume ~n <= 0;#res := 1; 161636#factFINAL assume true; 161254#factEXIT >#70#return; 161255#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 161332#$Ultimate##0 ~n := #in~n; 161333#L25 assume ~n <= 0;#res := 1; 161328#factFINAL assume true; 161329#factEXIT >#72#return; 161632#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 160335#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 160336#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 160340#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 160341#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 161359#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 160267#$Ultimate##0 ~n := #in~n; 162462#L25 assume !(~n <= 0); 160300#L26 call #t~ret0 := fact(~n - 1);< 162494#$Ultimate##0 ~n := #in~n; 162497#L25 assume ~n <= 0;#res := 1; 162496#factFINAL assume true; 162493#factEXIT >#66#return; 162492#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 162491#factFINAL assume true; 162489#factEXIT >#74#return; 162456#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 160362#$Ultimate##0 ~n := #in~n; 162461#L25 assume ~n <= 0;#res := 1; 162460#factFINAL assume true; 162451#factEXIT >#76#return; 161362#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 162490#$Ultimate##0 ~n := #in~n; 162495#L25 assume !(~n <= 0); 160300#L26 call #t~ret0 := fact(~n - 1);< 162494#$Ultimate##0 ~n := #in~n; 162497#L25 assume ~n <= 0;#res := 1; 162496#factFINAL assume true; 162493#factEXIT >#66#return; 162492#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 162491#factFINAL assume true; 162489#factEXIT >#78#return; 162488#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 162487#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 162486#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 162484#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 160325#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 160318#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 160320#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 160506#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 160478#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 160501#$Ultimate##0 ~n := #in~n; 160504#L25 assume !(~n <= 0); 160505#L26 call #t~ret0 := fact(~n - 1);< 160893#$Ultimate##0 ~n := #in~n; 160847#L25 assume !(~n <= 0); 160841#L26 call #t~ret0 := fact(~n - 1);< 160846#$Ultimate##0 ~n := #in~n; 160847#L25 assume !(~n <= 0); 160841#L26 call #t~ret0 := fact(~n - 1);< 160846#$Ultimate##0 ~n := #in~n; 160847#L25 assume !(~n <= 0); 160841#L26 call #t~ret0 := fact(~n - 1);< 160846#$Ultimate##0 ~n := #in~n; 160847#L25 assume !(~n <= 0); 160841#L26 call #t~ret0 := fact(~n - 1);< 160846#$Ultimate##0 ~n := #in~n; 160847#L25 assume !(~n <= 0); 160841#L26 call #t~ret0 := fact(~n - 1);< 160846#$Ultimate##0 ~n := #in~n; 160847#L25 assume !(~n <= 0); 160841#L26 call #t~ret0 := fact(~n - 1);< 160846#$Ultimate##0 ~n := #in~n; 160848#L25 assume ~n <= 0;#res := 1; 160879#factFINAL assume true; 160878#factEXIT >#66#return; 160877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160876#factFINAL assume true; 160874#factEXIT >#66#return; 160873#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160872#factFINAL assume true; 160871#factEXIT >#66#return; 160870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160869#factFINAL assume true; 160867#factEXIT >#66#return; 160866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160865#factFINAL assume true; 160863#factEXIT >#66#return; 160862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160861#factFINAL assume true; 160859#factEXIT >#66#return; 160858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160857#factFINAL assume true; 160855#factEXIT >#66#return; 160856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161156#factFINAL assume true; 161155#factEXIT >#68#return; 160483#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 160501#$Ultimate##0 ~n := #in~n; 160504#L25 assume ~n <= 0;#res := 1; 160503#factFINAL assume true; 160470#factEXIT >#70#return; 160497#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 161152#$Ultimate##0 ~n := #in~n; 161149#L25 assume !(~n <= 0); 161085#L26 call #t~ret0 := fact(~n - 1);< 161096#$Ultimate##0 ~n := #in~n; 161169#L25 assume !(~n <= 0); 161075#L26 call #t~ret0 := fact(~n - 1);< 161104#$Ultimate##0 ~n := #in~n; 161175#L25 assume !(~n <= 0); 161074#L26 call #t~ret0 := fact(~n - 1);< 161140#$Ultimate##0 ~n := #in~n; 161268#L25 assume !(~n <= 0); 161051#L26 call #t~ret0 := fact(~n - 1);< 161060#$Ultimate##0 ~n := #in~n; 161112#L25 assume !(~n <= 0); 161050#L26 call #t~ret0 := fact(~n - 1);< 161065#$Ultimate##0 ~n := #in~n; 161067#L25 assume !(~n <= 0); 161019#L26 call #t~ret0 := fact(~n - 1);< 161028#$Ultimate##0 ~n := #in~n; 161038#L25 assume !(~n <= 0); 161022#L26 call #t~ret0 := fact(~n - 1);< 161035#$Ultimate##0 ~n := #in~n; 161039#L25 assume ~n <= 0;#res := 1; 161036#factFINAL assume true; 161032#factEXIT >#66#return; 161031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161029#factFINAL assume true; 161018#factEXIT >#66#return; 161024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161066#factFINAL assume true; 161062#factEXIT >#66#return; 161061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161059#factFINAL assume true; 161048#factEXIT >#66#return; 161058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161141#factFINAL assume true; 161136#factEXIT >#66#return; 161135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161105#factFINAL assume true; 161099#factEXIT >#66#return; 161098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161097#factFINAL assume true; 161092#factEXIT >#66#return; 161095#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161284#factFINAL assume true; 161278#factEXIT >#72#return; 161275#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 161274#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 161273#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 161272#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 160952#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 160904#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 160934#$Ultimate##0 ~n := #in~n; 160949#L25 assume !(~n <= 0); 160950#L26 call #t~ret0 := fact(~n - 1);< 160963#$Ultimate##0 ~n := #in~n; 161038#L25 assume !(~n <= 0); 161022#L26 call #t~ret0 := fact(~n - 1);< 161035#$Ultimate##0 ~n := #in~n; 161038#L25 assume !(~n <= 0); 161022#L26 call #t~ret0 := fact(~n - 1);< 161035#$Ultimate##0 ~n := #in~n; 161038#L25 assume !(~n <= 0); 161022#L26 call #t~ret0 := fact(~n - 1);< 161035#$Ultimate##0 ~n := #in~n; 161038#L25 assume !(~n <= 0); 161022#L26 call #t~ret0 := fact(~n - 1);< 161035#$Ultimate##0 ~n := #in~n; 161039#L25 assume ~n <= 0;#res := 1; 161036#factFINAL assume true; 161032#factEXIT >#66#return; 161031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161029#factFINAL assume true; 161018#factEXIT >#66#return; 161024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161066#factFINAL assume true; 161062#factEXIT >#66#return; 161061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161059#factFINAL assume true; 161048#factEXIT >#66#return; 161058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161141#factFINAL assume true; 161136#factEXIT >#66#return; 161137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161180#factFINAL assume true; 161177#factEXIT >#68#return; 160915#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 160934#$Ultimate##0 ~n := #in~n; 160949#L25 assume ~n <= 0;#res := 1; 160935#factFINAL assume true; 160903#factEXIT >#70#return; 160930#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 161218#$Ultimate##0 ~n := #in~n; 161316#L25 assume !(~n <= 0); 160351#L26 call #t~ret0 := fact(~n - 1);< 160350#$Ultimate##0 ~n := #in~n; 160354#L25 assume !(~n <= 0); 160415#L26 call #t~ret0 := fact(~n - 1);< 160680#$Ultimate##0 ~n := #in~n; 160976#L25 assume !(~n <= 0); 160416#L26 call #t~ret0 := fact(~n - 1);< 160604#$Ultimate##0 ~n := #in~n; 160710#L25 assume !(~n <= 0); 160421#L26 call #t~ret0 := fact(~n - 1);< 160615#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160628#L25 assume ~n <= 0;#res := 1; 160627#factFINAL assume true; 160622#factEXIT >#66#return; 160619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160616#factFINAL assume true; 160608#factEXIT >#66#return; 160606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160601#factFINAL assume true; 160593#factEXIT >#66#return; 160596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160679#factFINAL assume true; 160664#factEXIT >#66#return; 160666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160711#factFINAL assume true; 160638#factEXIT >#66#return; 160640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160691#factFINAL assume true; 160686#factEXIT >#66#return; 160684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160675#factFINAL assume true; 160657#factEXIT >#66#return; 160451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160507#factFINAL assume true; 160413#factEXIT >#66#return; 160454#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161313#factFINAL assume true; 161307#factEXIT >#72#return; 160273#L30-3 [2023-02-17 09:41:38,817 INFO L750 eck$LassoCheckResult]: Loop: 160273#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 160321#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 160334#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 160363#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 160984#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 160804#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 160347#$Ultimate##0 ~n := #in~n; 160822#L25 assume !(~n <= 0); 160414#L26 call #t~ret0 := fact(~n - 1);< 160528#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160628#L25 assume ~n <= 0;#res := 1; 160627#factFINAL assume true; 160622#factEXIT >#66#return; 160619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160616#factFINAL assume true; 160608#factEXIT >#66#return; 160606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160601#factFINAL assume true; 160593#factEXIT >#66#return; 160596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160679#factFINAL assume true; 160664#factEXIT >#66#return; 160666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160711#factFINAL assume true; 160638#factEXIT >#66#return; 160639#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161007#factFINAL assume true; 161003#factEXIT >#68#return; 160807#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 160347#$Ultimate##0 ~n := #in~n; 160822#L25 assume !(~n <= 0); 160414#L26 call #t~ret0 := fact(~n - 1);< 160528#$Ultimate##0 ~n := #in~n; 160512#L25 assume ~n <= 0;#res := 1; 160517#factFINAL assume true; 160537#factEXIT >#66#return; 160538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160820#factFINAL assume true; 160819#factEXIT >#70#return; 160602#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 160989#$Ultimate##0 ~n := #in~n; 160990#L25 assume !(~n <= 0); 160436#L26 call #t~ret0 := fact(~n - 1);< 160599#$Ultimate##0 ~n := #in~n; 160710#L25 assume !(~n <= 0); 160421#L26 call #t~ret0 := fact(~n - 1);< 160615#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160629#L25 assume !(~n <= 0); 160445#L26 call #t~ret0 := fact(~n - 1);< 160624#$Ultimate##0 ~n := #in~n; 160628#L25 assume ~n <= 0;#res := 1; 160627#factFINAL assume true; 160622#factEXIT >#66#return; 160619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160616#factFINAL assume true; 160608#factEXIT >#66#return; 160606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160601#factFINAL assume true; 160593#factEXIT >#66#return; 160596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160679#factFINAL assume true; 160664#factEXIT >#66#return; 160666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 160711#factFINAL assume true; 160638#factEXIT >#66#return; 160641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 161322#factFINAL assume true; 161303#factEXIT >#72#return; 160273#L30-3 [2023-02-17 09:41:38,818 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:38,818 INFO L85 PathProgramCache]: Analyzing trace with hash 851163479, now seen corresponding path program 9 times [2023-02-17 09:41:38,818 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:38,818 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [819361010] [2023-02-17 09:41:38,818 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:38,818 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:38,832 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:38,832 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [182179807] [2023-02-17 09:41:38,832 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:38,832 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:38,833 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:38,836 INFO L229 MonitoredProcess]: Starting monitored process 159 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:38,837 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (159)] Waiting until timeout for monitored process [2023-02-17 09:41:39,089 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2023-02-17 09:41:39,089 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:39,090 INFO L263 TraceCheckSpWp]: Trace formula consists of 332 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-17 09:41:39,094 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:39,136 INFO L134 CoverageAnalysis]: Checked inductivity of 5720 backedges. 2277 proven. 39 refuted. 0 times theorem prover too weak. 3404 trivial. 0 not checked. [2023-02-17 09:41:39,136 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:39,204 INFO L134 CoverageAnalysis]: Checked inductivity of 5720 backedges. 349 proven. 132 refuted. 0 times theorem prover too weak. 5239 trivial. 0 not checked. [2023-02-17 09:41:39,204 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:39,204 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [819361010] [2023-02-17 09:41:39,204 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:39,205 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [182179807] [2023-02-17 09:41:39,205 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [182179807] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:39,205 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:39,205 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 13 [2023-02-17 09:41:39,205 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1498775966] [2023-02-17 09:41:39,205 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:39,206 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:39,206 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:39,206 INFO L85 PathProgramCache]: Analyzing trace with hash -1171772808, now seen corresponding path program 5 times [2023-02-17 09:41:39,206 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:39,206 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2123267293] [2023-02-17 09:41:39,207 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:39,207 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:39,212 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:39,212 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [116806413] [2023-02-17 09:41:39,212 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:39,212 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:39,212 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:39,216 INFO L229 MonitoredProcess]: Starting monitored process 160 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:39,243 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (160)] Waiting until timeout for monitored process [2023-02-17 09:41:39,435 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 16 check-sat command(s) [2023-02-17 09:41:39,435 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:39,437 INFO L263 TraceCheckSpWp]: Trace formula consists of 185 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-17 09:41:39,438 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:39,516 INFO L134 CoverageAnalysis]: Checked inductivity of 474 backedges. 69 proven. 261 refuted. 0 times theorem prover too weak. 144 trivial. 0 not checked. [2023-02-17 09:41:39,517 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:39,816 INFO L134 CoverageAnalysis]: Checked inductivity of 474 backedges. 69 proven. 306 refuted. 0 times theorem prover too weak. 99 trivial. 0 not checked. [2023-02-17 09:41:39,817 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:39,817 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2123267293] [2023-02-17 09:41:39,817 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:39,817 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [116806413] [2023-02-17 09:41:39,817 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [116806413] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:39,817 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:39,817 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 25] total 28 [2023-02-17 09:41:39,817 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [623922804] [2023-02-17 09:41:39,817 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:39,817 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:39,817 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:39,818 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2023-02-17 09:41:39,818 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=129, Invalid=683, Unknown=0, NotChecked=0, Total=812 [2023-02-17 09:41:39,818 INFO L87 Difference]: Start difference. First operand 2279 states and 4437 transitions. cyclomatic complexity: 2186 Second operand has 29 states, 25 states have (on average 2.28) internal successors, (57), 25 states have internal predecessors, (57), 16 states have call successors, (16), 1 states have call predecessors, (16), 12 states have return successors, (24), 14 states have call predecessors, (24), 16 states have call successors, (24) [2023-02-17 09:41:40,836 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:40,837 INFO L93 Difference]: Finished difference Result 2786 states and 5311 transitions. [2023-02-17 09:41:40,837 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2786 states and 5311 transitions. [2023-02-17 09:41:40,853 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 347 [2023-02-17 09:41:40,867 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2786 states to 2784 states and 5309 transitions. [2023-02-17 09:41:40,867 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 889 [2023-02-17 09:41:40,868 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 901 [2023-02-17 09:41:40,868 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2784 states and 5309 transitions. [2023-02-17 09:41:40,868 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:40,868 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2784 states and 5309 transitions. [2023-02-17 09:41:40,869 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2784 states and 5309 transitions. [2023-02-17 09:41:40,907 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2784 to 2354. [2023-02-17 09:41:40,909 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2354 states, 1408 states have (on average 1.0433238636363635) internal successors, (1469), 1400 states have internal predecessors, (1469), 618 states have call successors, (671), 309 states have call predecessors, (671), 328 states have return successors, (2644), 644 states have call predecessors, (2644), 618 states have call successors, (2644) [2023-02-17 09:41:40,919 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2354 states to 2354 states and 4784 transitions. [2023-02-17 09:41:40,919 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2354 states and 4784 transitions. [2023-02-17 09:41:40,919 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 27 states. [2023-02-17 09:41:40,920 INFO L428 stractBuchiCegarLoop]: Abstraction has 2354 states and 4784 transitions. [2023-02-17 09:41:40,920 INFO L335 stractBuchiCegarLoop]: ======== Iteration 33 ============ [2023-02-17 09:41:40,920 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2354 states and 4784 transitions. [2023-02-17 09:41:40,927 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 229 [2023-02-17 09:41:40,927 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:40,927 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:40,928 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [49, 49, 31, 31, 31, 31, 18, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:40,928 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [17, 17, 14, 14, 14, 14, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:40,928 INFO L748 eck$LassoCheckResult]: Stem: 167893#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 167839#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 167840#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 167860#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 167848#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 167849#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 169005#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 168601#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 168603#$Ultimate##0 ~n := #in~n; 169004#L25 assume ~n <= 0;#res := 1; 169003#factFINAL assume true; 168600#factEXIT >#68#return; 168602#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 168903#$Ultimate##0 ~n := #in~n; 168902#L25 assume ~n <= 0;#res := 1; 168900#factFINAL assume true; 168901#factEXIT >#70#return; 167817#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 167818#$Ultimate##0 ~n := #in~n; 169000#L25 assume ~n <= 0;#res := 1; 168999#factFINAL assume true; 168928#factEXIT >#72#return; 168929#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 167869#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 167870#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 169192#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 169191#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 169189#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 169190#$Ultimate##0 ~n := #in~n; 169200#L25 assume !(~n <= 0); 169197#L26 call #t~ret0 := fact(~n - 1);< 169199#$Ultimate##0 ~n := #in~n; 169203#L25 assume ~n <= 0;#res := 1; 169201#factFINAL assume true; 169195#factEXIT >#66#return; 169194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 169193#factFINAL assume true; 169188#factEXIT >#74#return; 168977#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 168976#$Ultimate##0 ~n := #in~n; 168978#L25 assume ~n <= 0;#res := 1; 169311#factFINAL assume true; 169309#factEXIT >#76#return; 169301#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 169304#$Ultimate##0 ~n := #in~n; 169316#L25 assume !(~n <= 0); 169313#L26 call #t~ret0 := fact(~n - 1);< 169314#$Ultimate##0 ~n := #in~n; 169317#L25 assume ~n <= 0;#res := 1; 169315#factFINAL assume true; 169312#factEXIT >#66#return; 169310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 169307#factFINAL assume true; 169300#factEXIT >#78#return; 168876#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 168875#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 168872#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 167934#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 167935#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 167850#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 167851#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 167932#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 167933#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 168608#$Ultimate##0 ~n := #in~n; 168607#L25 assume ~n <= 0;#res := 1; 168604#factFINAL assume true; 168605#factEXIT >#68#return; 167883#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 167884#$Ultimate##0 ~n := #in~n; 169002#L25 assume ~n <= 0;#res := 1; 169001#factFINAL assume true; 168898#factEXIT >#70#return; 168899#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 168933#$Ultimate##0 ~n := #in~n; 168932#L25 assume ~n <= 0;#res := 1; 168930#factFINAL assume true; 168931#factEXIT >#72#return; 167854#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 167855#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 168998#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 168996#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 168997#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 168961#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 168993#$Ultimate##0 ~n := #in~n; 168994#L25 assume !(~n <= 0); 167829#L26 call #t~ret0 := fact(~n - 1);< 170090#$Ultimate##0 ~n := #in~n; 170092#L25 assume ~n <= 0;#res := 1; 170089#factFINAL assume true; 170079#factEXIT >#66#return; 170080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 170101#factFINAL assume true; 170099#factEXIT >#74#return; 168982#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 168990#$Ultimate##0 ~n := #in~n; 168992#L25 assume ~n <= 0;#res := 1; 168991#factFINAL assume true; 168979#factEXIT >#76#return; 168963#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 170096#$Ultimate##0 ~n := #in~n; 170095#L25 assume !(~n <= 0); 167829#L26 call #t~ret0 := fact(~n - 1);< 170090#$Ultimate##0 ~n := #in~n; 170092#L25 assume ~n <= 0;#res := 1; 170089#factFINAL assume true; 170079#factEXIT >#66#return; 170080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 170101#factFINAL assume true; 170099#factEXIT >#78#return; 170100#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 170106#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 170105#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 170104#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 167858#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 167859#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 168734#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 168458#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 167998#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 168017#$Ultimate##0 ~n := #in~n; 168020#L25 assume !(~n <= 0); 168021#L26 call #t~ret0 := fact(~n - 1);< 168450#$Ultimate##0 ~n := #in~n; 168453#L25 assume !(~n <= 0); 168463#L26 call #t~ret0 := fact(~n - 1);< 168466#$Ultimate##0 ~n := #in~n; 168453#L25 assume !(~n <= 0); 168463#L26 call #t~ret0 := fact(~n - 1);< 168466#$Ultimate##0 ~n := #in~n; 168453#L25 assume !(~n <= 0); 168463#L26 call #t~ret0 := fact(~n - 1);< 168466#$Ultimate##0 ~n := #in~n; 168453#L25 assume !(~n <= 0); 168463#L26 call #t~ret0 := fact(~n - 1);< 168466#$Ultimate##0 ~n := #in~n; 168453#L25 assume !(~n <= 0); 168463#L26 call #t~ret0 := fact(~n - 1);< 168466#$Ultimate##0 ~n := #in~n; 168453#L25 assume !(~n <= 0); 168463#L26 call #t~ret0 := fact(~n - 1);< 168466#$Ultimate##0 ~n := #in~n; 168453#L25 assume !(~n <= 0); 168463#L26 call #t~ret0 := fact(~n - 1);< 168466#$Ultimate##0 ~n := #in~n; 168469#L25 assume ~n <= 0;#res := 1; 168492#factFINAL assume true; 168491#factEXIT >#66#return; 168490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168489#factFINAL assume true; 168487#factEXIT >#66#return; 168486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168485#factFINAL assume true; 168484#factEXIT >#66#return; 168483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168482#factFINAL assume true; 168480#factEXIT >#66#return; 168479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168478#factFINAL assume true; 168476#factEXIT >#66#return; 168475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168474#factFINAL assume true; 168472#factEXIT >#66#return; 168471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168470#factFINAL assume true; 168467#factEXIT >#66#return; 168464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168465#factFINAL assume true; 168462#factEXIT >#66#return; 168461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168460#factFINAL assume true; 168456#factEXIT >#68#return; 168000#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 168017#$Ultimate##0 ~n := #in~n; 168020#L25 assume ~n <= 0;#res := 1; 168019#factFINAL assume true; 167986#factEXIT >#70#return; 168014#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 168423#$Ultimate##0 ~n := #in~n; 168789#L25 assume !(~n <= 0); 168780#L26 call #t~ret0 := fact(~n - 1);< 168784#$Ultimate##0 ~n := #in~n; 168787#L25 assume !(~n <= 0); 168763#L26 call #t~ret0 := fact(~n - 1);< 168768#$Ultimate##0 ~n := #in~n; 168788#L25 assume !(~n <= 0); 168633#L26 call #t~ret0 := fact(~n - 1);< 168642#$Ultimate##0 ~n := #in~n; 168674#L25 assume !(~n <= 0); 168630#L26 call #t~ret0 := fact(~n - 1);< 168649#$Ultimate##0 ~n := #in~n; 168796#L25 assume !(~n <= 0); 168618#L26 call #t~ret0 := fact(~n - 1);< 168660#$Ultimate##0 ~n := #in~n; 168712#L25 assume !(~n <= 0); 168626#L26 call #t~ret0 := fact(~n - 1);< 168680#$Ultimate##0 ~n := #in~n; 168715#L25 assume !(~n <= 0); 168632#L26 call #t~ret0 := fact(~n - 1);< 168640#$Ultimate##0 ~n := #in~n; 168705#L25 assume !(~n <= 0); 168629#L26 call #t~ret0 := fact(~n - 1);< 168700#$Ultimate##0 ~n := #in~n; 168704#L25 assume ~n <= 0;#res := 1; 168703#factFINAL assume true; 168697#factEXIT >#66#return; 168695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168692#factFINAL assume true; 168685#factEXIT >#66#return; 168684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168683#factFINAL assume true; 168675#factEXIT >#66#return; 168664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168661#factFINAL assume true; 168654#factEXIT >#66#return; 168653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168650#factFINAL assume true; 168645#factEXIT >#66#return; 168644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168641#factFINAL assume true; 168617#factEXIT >#66#return; 168636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168793#factFINAL assume true; 168759#factEXIT >#66#return; 168764#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168786#factFINAL assume true; 168779#factEXIT >#66#return; 168783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168888#factFINAL assume true; 168883#factEXIT >#72#return; 168843#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 168841#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 168839#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 168837#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 168565#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 168514#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 168545#$Ultimate##0 ~n := #in~n; 168562#L25 assume !(~n <= 0); 168563#L26 call #t~ret0 := fact(~n - 1);< 168577#$Ultimate##0 ~n := #in~n; 168705#L25 assume !(~n <= 0); 168629#L26 call #t~ret0 := fact(~n - 1);< 168700#$Ultimate##0 ~n := #in~n; 168705#L25 assume !(~n <= 0); 168629#L26 call #t~ret0 := fact(~n - 1);< 168700#$Ultimate##0 ~n := #in~n; 168704#L25 assume ~n <= 0;#res := 1; 168703#factFINAL assume true; 168697#factEXIT >#66#return; 168695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168692#factFINAL assume true; 168685#factEXIT >#66#return; 168684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168683#factFINAL assume true; 168675#factEXIT >#66#return; 168678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168809#factFINAL assume true; 168672#factEXIT >#68#return; 168530#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 168545#$Ultimate##0 ~n := #in~n; 168562#L25 assume ~n <= 0;#res := 1; 168546#factFINAL assume true; 168511#factEXIT >#70#return; 168536#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 168728#$Ultimate##0 ~n := #in~n; 168726#L25 assume !(~n <= 0); 168043#L26 call #t~ret0 := fact(~n - 1);< 168298#$Ultimate##0 ~n := #in~n; 168296#L25 assume !(~n <= 0); 168061#L26 call #t~ret0 := fact(~n - 1);< 168161#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 167887#L25 assume ~n <= 0;#res := 1; 168295#factFINAL assume true; 168289#factEXIT >#66#return; 168163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168148#factFINAL assume true; 168137#factEXIT >#66#return; 168143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168394#factFINAL assume true; 168352#factEXIT >#66#return; 168354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168332#factFINAL assume true; 168320#factEXIT >#66#return; 168322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168402#factFINAL assume true; 168304#factEXIT >#66#return; 168306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168382#factFINAL assume true; 168376#factEXIT >#66#return; 168378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168393#factFINAL assume true; 168368#factEXIT >#66#return; 168067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168076#factFINAL assume true; 168024#factEXIT >#66#return; 168069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168946#factFINAL assume true; 168941#factEXIT >#72#return; 167811#L30-3 [2023-02-17 09:41:40,928 INFO L750 eck$LassoCheckResult]: Loop: 167811#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 168911#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 168908#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 168905#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 168668#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 168214#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 167882#$Ultimate##0 ~n := #in~n; 168444#L25 assume !(~n <= 0); 168052#L26 call #t~ret0 := fact(~n - 1);< 168094#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 167887#L25 assume ~n <= 0;#res := 1; 168295#factFINAL assume true; 168289#factEXIT >#66#return; 168163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168148#factFINAL assume true; 168137#factEXIT >#66#return; 168143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168394#factFINAL assume true; 168352#factEXIT >#66#return; 168354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168332#factFINAL assume true; 168320#factEXIT >#66#return; 168326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168497#factFINAL assume true; 168495#factEXIT >#68#return; 168244#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 167882#$Ultimate##0 ~n := #in~n; 168444#L25 assume !(~n <= 0); 168052#L26 call #t~ret0 := fact(~n - 1);< 168094#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 168095#L25 assume !(~n <= 0); 168040#L26 call #t~ret0 := fact(~n - 1);< 168290#$Ultimate##0 ~n := #in~n; 167887#L25 assume ~n <= 0;#res := 1; 168295#factFINAL assume true; 168289#factEXIT >#66#return; 168163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168148#factFINAL assume true; 168137#factEXIT >#66#return; 168143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168394#factFINAL assume true; 168352#factEXIT >#66#return; 168354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168332#factFINAL assume true; 168320#factEXIT >#66#return; 168322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168402#factFINAL assume true; 168304#factEXIT >#66#return; 168306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168382#factFINAL assume true; 168376#factEXIT >#66#return; 168378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168393#factFINAL assume true; 168368#factEXIT >#66#return; 168067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168076#factFINAL assume true; 168024#factEXIT >#66#return; 168070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168587#factFINAL assume true; 168211#factEXIT >#70#return; 168185#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 168336#$Ultimate##0 ~n := #in~n; 168335#L25 assume !(~n <= 0); 168091#L26 call #t~ret0 := fact(~n - 1);< 168327#$Ultimate##0 ~n := #in~n; 168361#L25 assume !(~n <= 0); 168139#L26 call #t~ret0 := fact(~n - 1);< 168359#$Ultimate##0 ~n := #in~n; 167887#L25 assume ~n <= 0;#res := 1; 168295#factFINAL assume true; 168289#factEXIT >#66#return; 168163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168148#factFINAL assume true; 168137#factEXIT >#66#return; 168145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 168944#factFINAL assume true; 168935#factEXIT >#72#return; 167811#L30-3 [2023-02-17 09:41:40,928 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:40,928 INFO L85 PathProgramCache]: Analyzing trace with hash -136623865, now seen corresponding path program 10 times [2023-02-17 09:41:40,929 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:40,929 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [999670542] [2023-02-17 09:41:40,929 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:40,929 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:40,938 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:40,939 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [828017908] [2023-02-17 09:41:40,939 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:40,939 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:40,939 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:40,942 INFO L229 MonitoredProcess]: Starting monitored process 161 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:40,943 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (161)] Waiting until timeout for monitored process [2023-02-17 09:41:41,191 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:41,191 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:41,193 INFO L263 TraceCheckSpWp]: Trace formula consists of 700 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:41,200 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:41,217 INFO L134 CoverageAnalysis]: Checked inductivity of 5720 backedges. 1639 proven. 1 refuted. 0 times theorem prover too weak. 4080 trivial. 0 not checked. [2023-02-17 09:41:41,217 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:41,246 INFO L134 CoverageAnalysis]: Checked inductivity of 5720 backedges. 83 proven. 121 refuted. 0 times theorem prover too weak. 5516 trivial. 0 not checked. [2023-02-17 09:41:41,246 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:41,246 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [999670542] [2023-02-17 09:41:41,246 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:41,247 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [828017908] [2023-02-17 09:41:41,247 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [828017908] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:41,247 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:41,247 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2023-02-17 09:41:41,247 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2624101] [2023-02-17 09:41:41,247 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:41,248 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:41,248 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:41,248 INFO L85 PathProgramCache]: Analyzing trace with hash 1655311920, now seen corresponding path program 6 times [2023-02-17 09:41:41,248 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:41,248 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1848774265] [2023-02-17 09:41:41,249 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:41,249 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:41,254 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:41,255 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [628536973] [2023-02-17 09:41:41,255 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:41,255 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:41,255 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:41,260 INFO L229 MonitoredProcess]: Starting monitored process 162 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:41,282 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (162)] Waiting until timeout for monitored process [2023-02-17 09:41:41,507 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 19 check-sat command(s) [2023-02-17 09:41:41,508 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:41,509 INFO L263 TraceCheckSpWp]: Trace formula consists of 221 conjuncts, 33 conjunts are in the unsatisfiable core [2023-02-17 09:41:41,510 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:41,608 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 116 proven. 375 refuted. 0 times theorem prover too weak. 235 trivial. 0 not checked. [2023-02-17 09:41:41,608 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:42,016 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 116 proven. 461 refuted. 0 times theorem prover too weak. 149 trivial. 0 not checked. [2023-02-17 09:41:42,016 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:42,016 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1848774265] [2023-02-17 09:41:42,016 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:42,016 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [628536973] [2023-02-17 09:41:42,017 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [628536973] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:42,017 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:42,017 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 29] total 34 [2023-02-17 09:41:42,017 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1621891758] [2023-02-17 09:41:42,017 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:42,017 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:42,017 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:42,018 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2023-02-17 09:41:42,018 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=179, Invalid=1011, Unknown=0, NotChecked=0, Total=1190 [2023-02-17 09:41:42,018 INFO L87 Difference]: Start difference. First operand 2354 states and 4784 transitions. cyclomatic complexity: 2458 Second operand has 35 states, 30 states have (on average 2.2333333333333334) internal successors, (67), 30 states have internal predecessors, (67), 19 states have call successors, (19), 1 states have call predecessors, (19), 15 states have return successors, (29), 18 states have call predecessors, (29), 19 states have call successors, (29) [2023-02-17 09:41:43,369 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:43,370 INFO L93 Difference]: Finished difference Result 3148 states and 6053 transitions. [2023-02-17 09:41:43,370 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3148 states and 6053 transitions. [2023-02-17 09:41:43,395 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 477 [2023-02-17 09:41:43,420 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3148 states to 3140 states and 6038 transitions. [2023-02-17 09:41:43,421 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1075 [2023-02-17 09:41:43,422 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1075 [2023-02-17 09:41:43,422 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3140 states and 6038 transitions. [2023-02-17 09:41:43,422 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:43,422 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3140 states and 6038 transitions. [2023-02-17 09:41:43,423 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3140 states and 6038 transitions. [2023-02-17 09:41:43,476 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3140 to 2354. [2023-02-17 09:41:43,478 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2354 states, 1408 states have (on average 1.0433238636363635) internal successors, (1469), 1400 states have internal predecessors, (1469), 618 states have call successors, (671), 309 states have call predecessors, (671), 328 states have return successors, (2636), 644 states have call predecessors, (2636), 618 states have call successors, (2636) [2023-02-17 09:41:43,490 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2354 states to 2354 states and 4776 transitions. [2023-02-17 09:41:43,490 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2354 states and 4776 transitions. [2023-02-17 09:41:43,491 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2023-02-17 09:41:43,491 INFO L428 stractBuchiCegarLoop]: Abstraction has 2354 states and 4776 transitions. [2023-02-17 09:41:43,491 INFO L335 stractBuchiCegarLoop]: ======== Iteration 34 ============ [2023-02-17 09:41:43,491 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2354 states and 4776 transitions. [2023-02-17 09:41:43,502 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 229 [2023-02-17 09:41:43,502 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:43,502 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:43,507 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [48, 48, 30, 30, 30, 30, 18, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:43,507 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [13, 13, 10, 10, 10, 10, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:43,508 INFO L748 eck$LassoCheckResult]: Stem: 175989#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 175915#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 175916#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 175937#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 175990#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 177018#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 177088#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 175897#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 175898#$Ultimate##0 ~n := #in~n; 177087#L25 assume ~n <= 0;#res := 1; 177086#factFINAL assume true; 176638#factEXIT >#68#return; 176639#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 177051#$Ultimate##0 ~n := #in~n; 177050#L25 assume ~n <= 0;#res := 1; 177048#factFINAL assume true; 177049#factEXIT >#70#return; 175893#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 175894#$Ultimate##0 ~n := #in~n; 177083#L25 assume ~n <= 0;#res := 1; 177082#factFINAL assume true; 177039#factEXIT >#72#return; 177040#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 175945#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 175946#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 177348#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 177344#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 177324#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 177325#$Ultimate##0 ~n := #in~n; 177336#L25 assume !(~n <= 0); 177327#L26 call #t~ret0 := fact(~n - 1);< 177330#$Ultimate##0 ~n := #in~n; 177345#L25 assume ~n <= 0;#res := 1; 177334#factFINAL assume true; 177326#factEXIT >#66#return; 177329#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 177341#factFINAL assume true; 177323#factEXIT >#74#return; 177053#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 177320#$Ultimate##0 ~n := #in~n; 177058#L25 assume ~n <= 0;#res := 1; 177059#factFINAL assume true; 177052#factEXIT >#76#return; 176908#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 176909#$Ultimate##0 ~n := #in~n; 177488#L25 assume !(~n <= 0); 177466#L26 call #t~ret0 := fact(~n - 1);< 177467#$Ultimate##0 ~n := #in~n; 177492#L25 assume ~n <= 0;#res := 1; 177490#factFINAL assume true; 177465#factEXIT >#66#return; 177461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 177458#factFINAL assume true; 177414#factEXIT >#78#return; 176903#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 176901#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 176899#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 176014#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 176015#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 175927#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 175928#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 176579#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 176580#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 176643#$Ultimate##0 ~n := #in~n; 176642#L25 assume ~n <= 0;#res := 1; 176640#factFINAL assume true; 176641#factEXIT >#68#return; 175975#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 175976#$Ultimate##0 ~n := #in~n; 177085#L25 assume ~n <= 0;#res := 1; 177084#factFINAL assume true; 177046#factEXIT >#70#return; 177043#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 177047#$Ultimate##0 ~n := #in~n; 177045#L25 assume ~n <= 0;#res := 1; 177042#factFINAL assume true; 177044#factEXIT >#72#return; 175932#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 175933#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 177081#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 177079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 177080#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 177010#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 177077#$Ultimate##0 ~n := #in~n; 178233#L25 assume !(~n <= 0); 175907#L26 call #t~ret0 := fact(~n - 1);< 178228#$Ultimate##0 ~n := #in~n; 175972#L25 assume ~n <= 0;#res := 1; 175973#factFINAL assume true; 178227#factEXIT >#66#return; 178226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 178225#factFINAL assume true; 177009#factEXIT >#74#return; 177016#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 177074#$Ultimate##0 ~n := #in~n; 177076#L25 assume ~n <= 0;#res := 1; 177075#factFINAL assume true; 177061#factEXIT >#76#return; 177011#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 177017#$Ultimate##0 ~n := #in~n; 178232#L25 assume !(~n <= 0); 175907#L26 call #t~ret0 := fact(~n - 1);< 178228#$Ultimate##0 ~n := #in~n; 175972#L25 assume ~n <= 0;#res := 1; 175973#factFINAL assume true; 178227#factEXIT >#66#return; 178226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 178225#factFINAL assume true; 177009#factEXIT >#78#return; 177015#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 178231#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 178230#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 178229#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 175935#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 175936#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 176829#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 176102#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 176080#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 176097#$Ultimate##0 ~n := #in~n; 176100#L25 assume !(~n <= 0); 176101#L26 call #t~ret0 := fact(~n - 1);< 176693#$Ultimate##0 ~n := #in~n; 176589#L25 assume !(~n <= 0); 176585#L26 call #t~ret0 := fact(~n - 1);< 176588#$Ultimate##0 ~n := #in~n; 176589#L25 assume !(~n <= 0); 176585#L26 call #t~ret0 := fact(~n - 1);< 176588#$Ultimate##0 ~n := #in~n; 176589#L25 assume !(~n <= 0); 176585#L26 call #t~ret0 := fact(~n - 1);< 176588#$Ultimate##0 ~n := #in~n; 176589#L25 assume !(~n <= 0); 176585#L26 call #t~ret0 := fact(~n - 1);< 176588#$Ultimate##0 ~n := #in~n; 176589#L25 assume !(~n <= 0); 176585#L26 call #t~ret0 := fact(~n - 1);< 176588#$Ultimate##0 ~n := #in~n; 176590#L25 assume ~n <= 0;#res := 1; 176619#factFINAL assume true; 176618#factEXIT >#66#return; 176617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176616#factFINAL assume true; 176614#factEXIT >#66#return; 176613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176612#factFINAL assume true; 176611#factEXIT >#66#return; 176610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176609#factFINAL assume true; 176607#factEXIT >#66#return; 176606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176605#factFINAL assume true; 176603#factEXIT >#66#return; 176602#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176601#factFINAL assume true; 176599#factEXIT >#66#return; 176600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176635#factFINAL assume true; 176634#factEXIT >#68#return; 176082#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 176097#$Ultimate##0 ~n := #in~n; 176100#L25 assume ~n <= 0;#res := 1; 176099#factFINAL assume true; 176066#factEXIT >#70#return; 176096#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 176415#$Ultimate##0 ~n := #in~n; 176670#L25 assume !(~n <= 0); 176476#L26 call #t~ret0 := fact(~n - 1);< 176500#$Ultimate##0 ~n := #in~n; 176637#L25 assume !(~n <= 0); 176485#L26 call #t~ret0 := fact(~n - 1);< 176506#$Ultimate##0 ~n := #in~n; 176550#L25 assume !(~n <= 0); 176482#L26 call #t~ret0 := fact(~n - 1);< 176518#$Ultimate##0 ~n := #in~n; 176553#L25 assume !(~n <= 0); 176475#L26 call #t~ret0 := fact(~n - 1);< 176531#$Ultimate##0 ~n := #in~n; 176577#L25 assume !(~n <= 0); 176490#L26 call #t~ret0 := fact(~n - 1);< 176498#$Ultimate##0 ~n := #in~n; 176570#L25 assume !(~n <= 0); 176480#L26 call #t~ret0 := fact(~n - 1);< 176561#$Ultimate##0 ~n := #in~n; 176569#L25 assume ~n <= 0;#res := 1; 176568#factFINAL assume true; 176559#factEXIT >#66#return; 176555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176545#factFINAL assume true; 176537#factEXIT >#66#return; 176536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176533#factFINAL assume true; 176526#factEXIT >#66#return; 176525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176519#factFINAL assume true; 176511#factEXIT >#66#return; 176510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176507#factFINAL assume true; 176502#factEXIT >#66#return; 176501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176499#factFINAL assume true; 176472#factEXIT >#66#return; 176495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176920#factFINAL assume true; 176915#factEXIT >#72#return; 176904#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 176900#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 176885#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 176883#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 176576#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 176428#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 176450#$Ultimate##0 ~n := #in~n; 176469#L25 assume !(~n <= 0); 176470#L26 call #t~ret0 := fact(~n - 1);< 176629#$Ultimate##0 ~n := #in~n; 176570#L25 assume !(~n <= 0); 176480#L26 call #t~ret0 := fact(~n - 1);< 176561#$Ultimate##0 ~n := #in~n; 176570#L25 assume !(~n <= 0); 176480#L26 call #t~ret0 := fact(~n - 1);< 176561#$Ultimate##0 ~n := #in~n; 176570#L25 assume !(~n <= 0); 176480#L26 call #t~ret0 := fact(~n - 1);< 176561#$Ultimate##0 ~n := #in~n; 176570#L25 assume !(~n <= 0); 176480#L26 call #t~ret0 := fact(~n - 1);< 176561#$Ultimate##0 ~n := #in~n; 176570#L25 assume !(~n <= 0); 176480#L26 call #t~ret0 := fact(~n - 1);< 176561#$Ultimate##0 ~n := #in~n; 176569#L25 assume ~n <= 0;#res := 1; 176568#factFINAL assume true; 176559#factEXIT >#66#return; 176555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176545#factFINAL assume true; 176537#factEXIT >#66#return; 176536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176533#factFINAL assume true; 176526#factEXIT >#66#return; 176525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176519#factFINAL assume true; 176511#factEXIT >#66#return; 176510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176507#factFINAL assume true; 176502#factEXIT >#66#return; 176501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176499#factFINAL assume true; 176472#factEXIT >#66#return; 176471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176467#factFINAL assume true; 176452#factEXIT >#68#return; 176422#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 176450#$Ultimate##0 ~n := #in~n; 176469#L25 assume ~n <= 0;#res := 1; 176466#factFINAL assume true; 176419#factEXIT >#70#return; 176332#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 176411#$Ultimate##0 ~n := #in~n; 176408#L25 assume !(~n <= 0); 176175#L26 call #t~ret0 := fact(~n - 1);< 176334#$Ultimate##0 ~n := #in~n; 176382#L25 assume !(~n <= 0); 176180#L26 call #t~ret0 := fact(~n - 1);< 176348#$Ultimate##0 ~n := #in~n; 176354#L25 assume !(~n <= 0); 176177#L26 call #t~ret0 := fact(~n - 1);< 176318#$Ultimate##0 ~n := #in~n; 176379#L25 assume !(~n <= 0); 176147#L26 call #t~ret0 := fact(~n - 1);< 176189#$Ultimate##0 ~n := #in~n; 176188#L25 assume !(~n <= 0); 176139#L26 call #t~ret0 := fact(~n - 1);< 176259#$Ultimate##0 ~n := #in~n; 176205#L25 assume !(~n <= 0); 176124#L26 call #t~ret0 := fact(~n - 1);< 176303#$Ultimate##0 ~n := #in~n; 176205#L25 assume !(~n <= 0); 176124#L26 call #t~ret0 := fact(~n - 1);< 176303#$Ultimate##0 ~n := #in~n; 176205#L25 assume !(~n <= 0); 176124#L26 call #t~ret0 := fact(~n - 1);< 176303#$Ultimate##0 ~n := #in~n; 176342#L25 assume ~n <= 0;#res := 1; 176341#factFINAL assume true; 176301#factEXIT >#66#return; 176300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176258#factFINAL assume true; 176242#factEXIT >#66#return; 176246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176390#factFINAL assume true; 176122#factEXIT >#66#return; 176149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176306#factFINAL assume true; 176277#factEXIT >#66#return; 176279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176345#factFINAL assume true; 176284#factEXIT >#66#return; 176287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176330#factFINAL assume true; 176322#factEXIT >#66#return; 176324#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176377#factFINAL assume true; 176336#factEXIT >#66#return; 176202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176162#factFINAL assume true; 176184#factEXIT >#66#return; 176298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176969#factFINAL assume true; 176959#factEXIT >#72#return; 176958#L30-3 [2023-02-17 09:41:43,508 INFO L750 eck$LassoCheckResult]: Loop: 176958#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 176987#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 176986#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 176985#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 176984#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 176786#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 175896#$Ultimate##0 ~n := #in~n; 176809#L25 assume !(~n <= 0); 176133#L26 call #t~ret0 := fact(~n - 1);< 176204#$Ultimate##0 ~n := #in~n; 176205#L25 assume !(~n <= 0); 176124#L26 call #t~ret0 := fact(~n - 1);< 176303#$Ultimate##0 ~n := #in~n; 176205#L25 assume !(~n <= 0); 176124#L26 call #t~ret0 := fact(~n - 1);< 176303#$Ultimate##0 ~n := #in~n; 176205#L25 assume !(~n <= 0); 176124#L26 call #t~ret0 := fact(~n - 1);< 176303#$Ultimate##0 ~n := #in~n; 176342#L25 assume ~n <= 0;#res := 1; 176341#factFINAL assume true; 176301#factEXIT >#66#return; 176300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176258#factFINAL assume true; 176242#factEXIT >#66#return; 176246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176390#factFINAL assume true; 176122#factEXIT >#66#return; 176149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176306#factFINAL assume true; 176277#factEXIT >#66#return; 176281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176897#factFINAL assume true; 176847#factEXIT >#68#return; 176752#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 175896#$Ultimate##0 ~n := #in~n; 176809#L25 assume !(~n <= 0); 176133#L26 call #t~ret0 := fact(~n - 1);< 176204#$Ultimate##0 ~n := #in~n; 176205#L25 assume !(~n <= 0); 176124#L26 call #t~ret0 := fact(~n - 1);< 176303#$Ultimate##0 ~n := #in~n; 176342#L25 assume ~n <= 0;#res := 1; 176341#factFINAL assume true; 176301#factEXIT >#66#return; 176300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176258#factFINAL assume true; 176242#factEXIT >#66#return; 176244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176804#factFINAL assume true; 176805#factEXIT >#70#return; 176312#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 176329#$Ultimate##0 ~n := #in~n; 176328#L25 assume !(~n <= 0); 176132#L26 call #t~ret0 := fact(~n - 1);< 176282#$Ultimate##0 ~n := #in~n; 176366#L25 assume !(~n <= 0); 176138#L26 call #t~ret0 := fact(~n - 1);< 176344#$Ultimate##0 ~n := #in~n; 176351#L25 assume !(~n <= 0); 176243#L26 call #t~ret0 := fact(~n - 1);< 176305#$Ultimate##0 ~n := #in~n; 176343#L25 assume !(~n <= 0); 176302#L26 call #t~ret0 := fact(~n - 1);< 176304#$Ultimate##0 ~n := #in~n; 176342#L25 assume ~n <= 0;#res := 1; 176341#factFINAL assume true; 176301#factEXIT >#66#return; 176300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176258#factFINAL assume true; 176242#factEXIT >#66#return; 176246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176390#factFINAL assume true; 176122#factEXIT >#66#return; 176149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176306#factFINAL assume true; 176277#factEXIT >#66#return; 176278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 176974#factFINAL assume true; 176967#factEXIT >#72#return; 176958#L30-3 [2023-02-17 09:41:43,508 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:43,508 INFO L85 PathProgramCache]: Analyzing trace with hash -244301441, now seen corresponding path program 11 times [2023-02-17 09:41:43,508 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:43,510 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1172580674] [2023-02-17 09:41:43,511 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:43,511 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:43,522 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:43,522 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1983995396] [2023-02-17 09:41:43,522 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:43,522 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:43,522 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:43,529 INFO L229 MonitoredProcess]: Starting monitored process 163 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:43,547 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (163)] Waiting until timeout for monitored process [2023-02-17 09:41:43,825 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 19 check-sat command(s) [2023-02-17 09:41:43,825 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:43,827 INFO L263 TraceCheckSpWp]: Trace formula consists of 557 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:41:43,829 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:43,879 INFO L134 CoverageAnalysis]: Checked inductivity of 5468 backedges. 1888 proven. 29 refuted. 0 times theorem prover too weak. 3551 trivial. 0 not checked. [2023-02-17 09:41:43,879 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:44,017 INFO L134 CoverageAnalysis]: Checked inductivity of 5468 backedges. 148 proven. 699 refuted. 0 times theorem prover too weak. 4621 trivial. 0 not checked. [2023-02-17 09:41:44,018 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:44,018 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1172580674] [2023-02-17 09:41:44,018 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:44,018 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1983995396] [2023-02-17 09:41:44,018 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1983995396] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:44,018 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:44,018 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14] total 19 [2023-02-17 09:41:44,018 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1981735604] [2023-02-17 09:41:44,019 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:44,019 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:44,019 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:44,019 INFO L85 PathProgramCache]: Analyzing trace with hash 1049546416, now seen corresponding path program 7 times [2023-02-17 09:41:44,019 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:44,019 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1708058738] [2023-02-17 09:41:44,020 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:44,020 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:44,025 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:44,026 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1408820850] [2023-02-17 09:41:44,026 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:41:44,026 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:44,026 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:44,032 INFO L229 MonitoredProcess]: Starting monitored process 164 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:44,069 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (164)] Waiting until timeout for monitored process [2023-02-17 09:41:44,319 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:44,320 INFO L263 TraceCheckSpWp]: Trace formula consists of 173 conjuncts, 23 conjunts are in the unsatisfiable core [2023-02-17 09:41:44,321 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:44,379 INFO L134 CoverageAnalysis]: Checked inductivity of 402 backedges. 49 proven. 230 refuted. 0 times theorem prover too weak. 123 trivial. 0 not checked. [2023-02-17 09:41:44,380 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:44,607 INFO L134 CoverageAnalysis]: Checked inductivity of 402 backedges. 49 proven. 256 refuted. 0 times theorem prover too weak. 97 trivial. 0 not checked. [2023-02-17 09:41:44,607 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:44,607 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1708058738] [2023-02-17 09:41:44,608 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:44,608 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1408820850] [2023-02-17 09:41:44,608 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1408820850] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:44,608 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:44,608 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 19] total 22 [2023-02-17 09:41:44,608 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1694138242] [2023-02-17 09:41:44,608 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:44,609 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:44,609 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:44,609 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2023-02-17 09:41:44,609 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=87, Invalid=419, Unknown=0, NotChecked=0, Total=506 [2023-02-17 09:41:44,610 INFO L87 Difference]: Start difference. First operand 2354 states and 4776 transitions. cyclomatic complexity: 2450 Second operand has 23 states, 19 states have (on average 2.473684210526316) internal successors, (47), 19 states have internal predecessors, (47), 13 states have call successors, (14), 1 states have call predecessors, (14), 9 states have return successors, (19), 12 states have call predecessors, (19), 13 states have call successors, (19) [2023-02-17 09:41:45,274 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:45,274 INFO L93 Difference]: Finished difference Result 2910 states and 5565 transitions. [2023-02-17 09:41:45,274 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2910 states and 5565 transitions. [2023-02-17 09:41:45,289 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 443 [2023-02-17 09:41:45,304 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2910 states to 2908 states and 5563 transitions. [2023-02-17 09:41:45,304 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1044 [2023-02-17 09:41:45,305 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1044 [2023-02-17 09:41:45,305 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2908 states and 5563 transitions. [2023-02-17 09:41:45,305 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:45,305 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2908 states and 5563 transitions. [2023-02-17 09:41:45,305 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2908 states and 5563 transitions. [2023-02-17 09:41:45,349 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2908 to 2354. [2023-02-17 09:41:45,351 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2354 states, 1408 states have (on average 1.0433238636363635) internal successors, (1469), 1400 states have internal predecessors, (1469), 618 states have call successors, (671), 309 states have call predecessors, (671), 328 states have return successors, (2636), 644 states have call predecessors, (2636), 618 states have call successors, (2636) [2023-02-17 09:41:45,362 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2354 states to 2354 states and 4776 transitions. [2023-02-17 09:41:45,362 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2354 states and 4776 transitions. [2023-02-17 09:41:45,363 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2023-02-17 09:41:45,363 INFO L428 stractBuchiCegarLoop]: Abstraction has 2354 states and 4776 transitions. [2023-02-17 09:41:45,363 INFO L335 stractBuchiCegarLoop]: ======== Iteration 35 ============ [2023-02-17 09:41:45,363 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2354 states and 4776 transitions. [2023-02-17 09:41:45,371 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 229 [2023-02-17 09:41:45,371 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:45,371 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:45,372 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [46, 46, 28, 28, 28, 28, 18, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:45,372 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [17, 17, 14, 14, 14, 14, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:45,372 INFO L748 eck$LassoCheckResult]: Stem: 183640#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 183559#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 183560#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 183582#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 183641#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 184631#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 184719#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 183549#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 183550#$Ultimate##0 ~n := #in~n; 184718#L25 assume ~n <= 0;#res := 1; 184717#factFINAL assume true; 184334#factEXIT >#68#return; 184335#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 184714#$Ultimate##0 ~n := #in~n; 184716#L25 assume ~n <= 0;#res := 1; 184635#factFINAL assume true; 184636#factEXIT >#70#return; 183545#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 183546#$Ultimate##0 ~n := #in~n; 184693#L25 assume ~n <= 0;#res := 1; 184694#factFINAL assume true; 184689#factEXIT >#72#return; 184690#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 183592#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 183593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 184871#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 184870#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 184866#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 184868#$Ultimate##0 ~n := #in~n; 184867#L25 assume !(~n <= 0); 184856#L26 call #t~ret0 := fact(~n - 1);< 184858#$Ultimate##0 ~n := #in~n; 184869#L25 assume ~n <= 0;#res := 1; 184865#factFINAL assume true; 184854#factEXIT >#66#return; 184857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184929#factFINAL assume true; 184927#factEXIT >#74#return; 184686#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 184925#$Ultimate##0 ~n := #in~n; 184945#L25 assume ~n <= 0;#res := 1; 184942#factFINAL assume true; 184685#factEXIT >#76#return; 184361#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 184362#$Ultimate##0 ~n := #in~n; 185011#L25 assume !(~n <= 0); 185008#L26 call #t~ret0 := fact(~n - 1);< 185009#$Ultimate##0 ~n := #in~n; 185012#L25 assume ~n <= 0;#res := 1; 185010#factFINAL assume true; 185007#factEXIT >#66#return; 185005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 185003#factFINAL assume true; 184998#factEXIT >#78#return; 184357#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 184356#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 184355#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 183648#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 183580#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 183581#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 183574#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 184326#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 184327#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 184342#$Ultimate##0 ~n := #in~n; 184341#L25 assume ~n <= 0;#res := 1; 184338#factFINAL assume true; 184339#factEXIT >#68#return; 183616#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 183617#$Ultimate##0 ~n := #in~n; 184637#L25 assume ~n <= 0;#res := 1; 184638#factFINAL assume true; 184633#factEXIT >#70#return; 184634#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 184713#$Ultimate##0 ~n := #in~n; 184715#L25 assume ~n <= 0;#res := 1; 184691#factFINAL assume true; 184692#factEXIT >#72#return; 183577#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 183578#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 184712#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 184710#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 184711#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 184696#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 184708#$Ultimate##0 ~n := #in~n; 185806#L25 assume !(~n <= 0); 183557#L26 call #t~ret0 := fact(~n - 1);< 185815#$Ultimate##0 ~n := #in~n; 183614#L25 assume ~n <= 0;#res := 1; 183556#factFINAL assume true; 183558#factEXIT >#66#return; 185808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 185876#factFINAL assume true; 185874#factEXIT >#74#return; 185797#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 183638#$Ultimate##0 ~n := #in~n; 185805#L25 assume ~n <= 0;#res := 1; 185804#factFINAL assume true; 185792#factEXIT >#76#return; 184700#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 184703#$Ultimate##0 ~n := #in~n; 185873#L25 assume !(~n <= 0); 183557#L26 call #t~ret0 := fact(~n - 1);< 185815#$Ultimate##0 ~n := #in~n; 183614#L25 assume ~n <= 0;#res := 1; 183556#factFINAL assume true; 183558#factEXIT >#66#return; 185808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 185876#factFINAL assume true; 185874#factEXIT >#78#return; 185875#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 185879#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 185878#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 185877#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 184350#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 183573#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 183575#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 183723#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 183703#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 183718#$Ultimate##0 ~n := #in~n; 183721#L25 assume !(~n <= 0); 183722#L26 call #t~ret0 := fact(~n - 1);< 184323#$Ultimate##0 ~n := #in~n; 184057#L25 assume !(~n <= 0); 184053#L26 call #t~ret0 := fact(~n - 1);< 184056#$Ultimate##0 ~n := #in~n; 184057#L25 assume !(~n <= 0); 184053#L26 call #t~ret0 := fact(~n - 1);< 184056#$Ultimate##0 ~n := #in~n; 184057#L25 assume !(~n <= 0); 184053#L26 call #t~ret0 := fact(~n - 1);< 184056#$Ultimate##0 ~n := #in~n; 184057#L25 assume !(~n <= 0); 184053#L26 call #t~ret0 := fact(~n - 1);< 184056#$Ultimate##0 ~n := #in~n; 184059#L25 assume ~n <= 0;#res := 1; 184076#factFINAL assume true; 184075#factEXIT >#66#return; 184074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184073#factFINAL assume true; 184071#factEXIT >#66#return; 184070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184069#factFINAL assume true; 184068#factEXIT >#66#return; 184067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184066#factFINAL assume true; 184064#factEXIT >#66#return; 184063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184062#factFINAL assume true; 184060#factEXIT >#66#return; 184061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184428#factFINAL assume true; 184427#factEXIT >#68#return; 183699#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 183718#$Ultimate##0 ~n := #in~n; 183721#L25 assume ~n <= 0;#res := 1; 183720#factFINAL assume true; 183689#factEXIT >#70#return; 183713#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 184415#$Ultimate##0 ~n := #in~n; 184618#L25 assume !(~n <= 0); 184246#L26 call #t~ret0 := fact(~n - 1);< 184370#$Ultimate##0 ~n := #in~n; 184468#L25 assume !(~n <= 0); 184228#L26 call #t~ret0 := fact(~n - 1);< 184386#$Ultimate##0 ~n := #in~n; 184485#L25 assume !(~n <= 0); 184237#L26 call #t~ret0 := fact(~n - 1);< 184464#$Ultimate##0 ~n := #in~n; 184486#L25 assume !(~n <= 0); 184226#L26 call #t~ret0 := fact(~n - 1);< 184255#$Ultimate##0 ~n := #in~n; 184487#L25 assume !(~n <= 0); 184225#L26 call #t~ret0 := fact(~n - 1);< 184581#$Ultimate##0 ~n := #in~n; 184585#L25 assume ~n <= 0;#res := 1; 184584#factFINAL assume true; 184579#factEXIT >#66#return; 184578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184490#factFINAL assume true; 184475#factEXIT >#66#return; 184474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184469#factFINAL assume true; 184459#factEXIT >#66#return; 184458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184394#factFINAL assume true; 184379#factEXIT >#66#return; 184378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184371#factFINAL assume true; 184366#factEXIT >#66#return; 184369#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184621#factFINAL assume true; 184609#factEXIT >#72#return; 184605#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 184604#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 184602#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 184600#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 184209#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 184195#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 184205#$Ultimate##0 ~n := #in~n; 184207#L25 assume !(~n <= 0); 184208#L26 call #t~ret0 := fact(~n - 1);< 184521#$Ultimate##0 ~n := #in~n; 184487#L25 assume !(~n <= 0); 184225#L26 call #t~ret0 := fact(~n - 1);< 184581#$Ultimate##0 ~n := #in~n; 184487#L25 assume !(~n <= 0); 184225#L26 call #t~ret0 := fact(~n - 1);< 184581#$Ultimate##0 ~n := #in~n; 184487#L25 assume !(~n <= 0); 184225#L26 call #t~ret0 := fact(~n - 1);< 184581#$Ultimate##0 ~n := #in~n; 184487#L25 assume !(~n <= 0); 184225#L26 call #t~ret0 := fact(~n - 1);< 184581#$Ultimate##0 ~n := #in~n; 184487#L25 assume !(~n <= 0); 184225#L26 call #t~ret0 := fact(~n - 1);< 184581#$Ultimate##0 ~n := #in~n; 184585#L25 assume ~n <= 0;#res := 1; 184584#factFINAL assume true; 184579#factEXIT >#66#return; 184578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184490#factFINAL assume true; 184475#factEXIT >#66#return; 184474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184469#factFINAL assume true; 184459#factEXIT >#66#return; 184458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184394#factFINAL assume true; 184379#factEXIT >#66#return; 184378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184371#factFINAL assume true; 184366#factEXIT >#66#return; 184365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184358#factFINAL assume true; 184271#factEXIT >#66#return; 184274#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184500#factFINAL assume true; 184498#factEXIT >#68#return; 184192#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 184205#$Ultimate##0 ~n := #in~n; 184207#L25 assume ~n <= 0;#res := 1; 184206#factFINAL assume true; 184174#factEXIT >#70#return; 183987#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 184038#$Ultimate##0 ~n := #in~n; 184039#L25 assume !(~n <= 0); 183937#L26 call #t~ret0 := fact(~n - 1);< 183989#$Ultimate##0 ~n := #in~n; 183992#L25 assume !(~n <= 0); 183785#L26 call #t~ret0 := fact(~n - 1);< 183784#$Ultimate##0 ~n := #in~n; 183786#L25 assume !(~n <= 0); 183917#L26 call #t~ret0 := fact(~n - 1);< 183975#$Ultimate##0 ~n := #in~n; 184012#L25 assume !(~n <= 0); 183759#L26 call #t~ret0 := fact(~n - 1);< 184011#$Ultimate##0 ~n := #in~n; 183984#L25 assume !(~n <= 0); 183748#L26 call #t~ret0 := fact(~n - 1);< 183934#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183996#L25 assume ~n <= 0;#res := 1; 183994#factFINAL assume true; 183968#factEXIT >#66#return; 183966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183933#factFINAL assume true; 183905#factEXIT >#66#return; 183793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183775#factFINAL assume true; 183742#factEXIT >#66#return; 183769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183974#factFINAL assume true; 183955#factEXIT >#66#return; 183958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183961#factFINAL assume true; 183916#factEXIT >#66#return; 183927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184010#factFINAL assume true; 184004#factEXIT >#66#return; 184006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183985#factFINAL assume true; 183978#factEXIT >#66#return; 183947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183973#factFINAL assume true; 183935#factEXIT >#66#return; 183949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184653#factFINAL assume true; 184644#factEXIT >#72#return; 183538#L30-3 [2023-02-17 09:41:45,373 INFO L750 eck$LassoCheckResult]: Loop: 183538#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 183576#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 183591#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 183639#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 184537#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 184104#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 183548#$Ultimate##0 ~n := #in~n; 184308#L25 assume !(~n <= 0); 183754#L26 call #t~ret0 := fact(~n - 1);< 183795#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183996#L25 assume ~n <= 0;#res := 1; 183994#factFINAL assume true; 183968#factEXIT >#66#return; 183966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183933#factFINAL assume true; 183905#factEXIT >#66#return; 183793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183775#factFINAL assume true; 183742#factEXIT >#66#return; 183769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183974#factFINAL assume true; 183955#factEXIT >#66#return; 183958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183961#factFINAL assume true; 183916#factEXIT >#66#return; 183930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184304#factFINAL assume true; 184303#factEXIT >#68#return; 184083#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 183548#$Ultimate##0 ~n := #in~n; 184308#L25 assume !(~n <= 0); 183754#L26 call #t~ret0 := fact(~n - 1);< 183795#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183796#L25 assume !(~n <= 0); 183752#L26 call #t~ret0 := fact(~n - 1);< 183970#$Ultimate##0 ~n := #in~n; 183996#L25 assume ~n <= 0;#res := 1; 183994#factFINAL assume true; 183968#factEXIT >#66#return; 183966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183933#factFINAL assume true; 183905#factEXIT >#66#return; 183793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183775#factFINAL assume true; 183742#factEXIT >#66#return; 183769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183974#factFINAL assume true; 183955#factEXIT >#66#return; 183958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183961#factFINAL assume true; 183916#factEXIT >#66#return; 183927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184010#factFINAL assume true; 184004#factEXIT >#66#return; 184009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184336#factFINAL assume true; 184337#factEXIT >#70#return; 183842#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 183858#$Ultimate##0 ~n := #in~n; 183854#L25 assume !(~n <= 0); 183744#L26 call #t~ret0 := fact(~n - 1);< 183831#$Ultimate##0 ~n := #in~n; 183830#L25 assume !(~n <= 0); 183746#L26 call #t~ret0 := fact(~n - 1);< 183971#$Ultimate##0 ~n := #in~n; 183828#L25 assume !(~n <= 0); 183824#L26 call #t~ret0 := fact(~n - 1);< 183827#$Ultimate##0 ~n := #in~n; 183996#L25 assume ~n <= 0;#res := 1; 183994#factFINAL assume true; 183968#factEXIT >#66#return; 183966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183933#factFINAL assume true; 183905#factEXIT >#66#return; 183793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 183775#factFINAL assume true; 183742#factEXIT >#66#return; 183767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 184656#factFINAL assume true; 184646#factEXIT >#72#return; 183538#L30-3 [2023-02-17 09:41:45,373 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:45,373 INFO L85 PathProgramCache]: Analyzing trace with hash 1670326159, now seen corresponding path program 12 times [2023-02-17 09:41:45,373 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:45,373 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1888525814] [2023-02-17 09:41:45,373 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:45,373 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:45,383 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:45,383 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1901375452] [2023-02-17 09:41:45,383 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:45,383 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:45,383 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:45,387 INFO L229 MonitoredProcess]: Starting monitored process 165 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:45,388 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (165)] Waiting until timeout for monitored process [2023-02-17 09:41:45,642 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2023-02-17 09:41:45,642 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:45,644 INFO L263 TraceCheckSpWp]: Trace formula consists of 357 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-17 09:41:45,649 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:45,683 INFO L134 CoverageAnalysis]: Checked inductivity of 4982 backedges. 2075 proven. 43 refuted. 0 times theorem prover too weak. 2864 trivial. 0 not checked. [2023-02-17 09:41:45,683 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:45,744 INFO L134 CoverageAnalysis]: Checked inductivity of 4982 backedges. 315 proven. 136 refuted. 0 times theorem prover too weak. 4531 trivial. 0 not checked. [2023-02-17 09:41:45,744 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:45,745 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1888525814] [2023-02-17 09:41:45,745 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:45,747 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1901375452] [2023-02-17 09:41:45,747 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1901375452] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:45,748 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:45,748 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 13 [2023-02-17 09:41:45,748 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1982281638] [2023-02-17 09:41:45,748 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:45,749 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:45,749 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:45,749 INFO L85 PathProgramCache]: Analyzing trace with hash 1124515584, now seen corresponding path program 8 times [2023-02-17 09:41:45,749 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:45,749 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1824849951] [2023-02-17 09:41:45,749 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:45,749 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:45,756 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:45,756 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2081328104] [2023-02-17 09:41:45,757 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:45,757 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:45,757 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:45,765 INFO L229 MonitoredProcess]: Starting monitored process 166 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:45,783 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (166)] Waiting until timeout for monitored process [2023-02-17 09:41:46,012 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:46,013 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:46,014 INFO L263 TraceCheckSpWp]: Trace formula consists of 221 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:41:46,015 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:46,115 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 331 proven. 237 refuted. 0 times theorem prover too weak. 158 trivial. 0 not checked. [2023-02-17 09:41:46,115 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:46,456 INFO L134 CoverageAnalysis]: Checked inductivity of 726 backedges. 57 proven. 497 refuted. 0 times theorem prover too weak. 172 trivial. 0 not checked. [2023-02-17 09:41:46,456 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:46,456 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1824849951] [2023-02-17 09:41:46,456 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:46,456 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2081328104] [2023-02-17 09:41:46,457 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2081328104] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:46,457 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:46,457 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 28] total 31 [2023-02-17 09:41:46,457 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [262051143] [2023-02-17 09:41:46,457 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:46,457 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:46,458 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:46,458 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-17 09:41:46,458 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=145, Invalid=785, Unknown=0, NotChecked=0, Total=930 [2023-02-17 09:41:46,459 INFO L87 Difference]: Start difference. First operand 2354 states and 4776 transitions. cyclomatic complexity: 2450 Second operand has 31 states, 28 states have (on average 2.4642857142857144) internal successors, (69), 30 states have internal predecessors, (69), 18 states have call successors, (20), 2 states have call predecessors, (20), 14 states have return successors, (28), 14 states have call predecessors, (28), 18 states have call successors, (28) [2023-02-17 09:41:47,482 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:47,483 INFO L93 Difference]: Finished difference Result 2619 states and 5110 transitions. [2023-02-17 09:41:47,483 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2619 states and 5110 transitions. [2023-02-17 09:41:47,498 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 292 [2023-02-17 09:41:47,514 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2619 states to 2597 states and 5068 transitions. [2023-02-17 09:41:47,514 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 834 [2023-02-17 09:41:47,515 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 846 [2023-02-17 09:41:47,515 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2597 states and 5068 transitions. [2023-02-17 09:41:47,515 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:47,515 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2597 states and 5068 transitions. [2023-02-17 09:41:47,515 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2597 states and 5068 transitions. [2023-02-17 09:41:47,552 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2597 to 2373. [2023-02-17 09:41:47,554 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2373 states, 1422 states have (on average 1.0464135021097047) internal successors, (1488), 1411 states have internal predecessors, (1488), 623 states have call successors, (676), 317 states have call predecessors, (676), 328 states have return successors, (2496), 644 states have call predecessors, (2496), 623 states have call successors, (2496) [2023-02-17 09:41:47,566 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2373 states to 2373 states and 4660 transitions. [2023-02-17 09:41:47,566 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2373 states and 4660 transitions. [2023-02-17 09:41:47,567 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2023-02-17 09:41:47,567 INFO L428 stractBuchiCegarLoop]: Abstraction has 2373 states and 4660 transitions. [2023-02-17 09:41:47,567 INFO L335 stractBuchiCegarLoop]: ======== Iteration 36 ============ [2023-02-17 09:41:47,567 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2373 states and 4660 transitions. [2023-02-17 09:41:47,575 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 229 [2023-02-17 09:41:47,575 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:47,575 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:47,576 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [31, 31, 18, 13, 13, 13, 13, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] [2023-02-17 09:41:47,576 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [9, 9, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:47,577 INFO L748 eck$LassoCheckResult]: Stem: 191076#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 191015#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 191016#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 191038#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 191077#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 191225#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 192184#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 191249#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 191253#$Ultimate##0 ~n := #in~n; 191254#L25 assume ~n <= 0;#res := 1; 191248#factFINAL assume true; 191250#factEXIT >#68#return; 191235#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 191236#$Ultimate##0 ~n := #in~n; 191244#L25 assume ~n <= 0;#res := 1; 191245#factFINAL assume true; 191234#factEXIT >#70#return; 191228#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 191230#$Ultimate##0 ~n := #in~n; 192183#L25 assume ~n <= 0;#res := 1; 192182#factFINAL assume true; 191227#factEXIT >#72#return; 191229#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 191056#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 191057#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 192494#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 192492#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 192486#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 192488#$Ultimate##0 ~n := #in~n; 192487#L25 assume !(~n <= 0); 192479#L26 call #t~ret0 := fact(~n - 1);< 192481#$Ultimate##0 ~n := #in~n; 192508#L25 assume ~n <= 0;#res := 1; 192485#factFINAL assume true; 192477#factEXIT >#66#return; 192480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 192506#factFINAL assume true; 192503#factEXIT >#74#return; 192399#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 192401#$Ultimate##0 ~n := #in~n; 192404#L25 assume ~n <= 0;#res := 1; 192403#factFINAL assume true; 192398#factEXIT >#76#return; 192394#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 192396#$Ultimate##0 ~n := #in~n; 192418#L25 assume !(~n <= 0); 192412#L26 call #t~ret0 := fact(~n - 1);< 192413#$Ultimate##0 ~n := #in~n; 192428#L25 assume ~n <= 0;#res := 1; 192422#factFINAL assume true; 192411#factEXIT >#66#return; 192406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 192405#factFINAL assume true; 192393#factEXIT >#78#return; 191715#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 191714#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 191712#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 191082#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 191037#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 191029#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 191030#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 191089#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 191090#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 191242#$Ultimate##0 ~n := #in~n; 191251#L25 assume ~n <= 0;#res := 1; 191252#factFINAL assume true; 191241#factEXIT >#68#return; 191239#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 191246#$Ultimate##0 ~n := #in~n; 191247#L25 assume ~n <= 0;#res := 1; 191238#factFINAL assume true; 191240#factEXIT >#70#return; 191232#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 191243#$Ultimate##0 ~n := #in~n; 191237#L25 assume ~n <= 0;#res := 1; 191231#factFINAL assume true; 191233#factEXIT >#72#return; 191034#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 191035#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 192181#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 192179#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 192180#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 191134#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 192177#$Ultimate##0 ~n := #in~n; 193271#L25 assume !(~n <= 0); 190986#L26 call #t~ret0 := fact(~n - 1);< 193268#$Ultimate##0 ~n := #in~n; 193269#L25 assume ~n <= 0;#res := 1; 193267#factFINAL assume true; 190985#factEXIT >#66#return; 190987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 193276#factFINAL assume true; 193274#factEXIT >#74#return; 192192#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 192195#$Ultimate##0 ~n := #in~n; 192197#L25 assume ~n <= 0;#res := 1; 192196#factFINAL assume true; 192186#factEXIT >#76#return; 191135#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 193273#$Ultimate##0 ~n := #in~n; 193270#L25 assume !(~n <= 0); 190986#L26 call #t~ret0 := fact(~n - 1);< 193268#$Ultimate##0 ~n := #in~n; 193269#L25 assume ~n <= 0;#res := 1; 193267#factFINAL assume true; 190985#factEXIT >#66#return; 190987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 193276#factFINAL assume true; 193274#factEXIT >#78#return; 193275#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 193304#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 193301#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 193298#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 191710#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 191709#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 191708#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 191707#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 191196#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 191209#$Ultimate##0 ~n := #in~n; 191215#L25 assume !(~n <= 0); 191364#L26 call #t~ret0 := fact(~n - 1);< 191725#$Ultimate##0 ~n := #in~n; 191731#L25 assume ~n <= 0;#res := 1; 191728#factFINAL assume true; 191724#factEXIT >#66#return; 191723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191722#factFINAL assume true; 191706#factEXIT >#68#return; 191190#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 191211#$Ultimate##0 ~n := #in~n; 191213#L25 assume ~n <= 0;#res := 1; 191210#factFINAL assume true; 191180#factEXIT >#70#return; 191147#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 191702#$Ultimate##0 ~n := #in~n; 191934#L25 assume !(~n <= 0); 191872#L26 call #t~ret0 := fact(~n - 1);< 191927#$Ultimate##0 ~n := #in~n; 191886#L25 assume ~n <= 0;#res := 1; 191883#factFINAL assume true; 191870#factEXIT >#66#return; 191879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191994#factFINAL assume true; 191146#factEXIT >#72#return; 191148#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 191885#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 191882#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 191869#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 191867#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 191848#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 191065#$Ultimate##0 ~n := #in~n; 191864#L25 assume !(~n <= 0); 191865#L26 call #t~ret0 := fact(~n - 1);< 191927#$Ultimate##0 ~n := #in~n; 191886#L25 assume ~n <= 0;#res := 1; 191883#factFINAL assume true; 191870#factEXIT >#66#return; 191868#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191866#factFINAL assume true; 191853#factEXIT >#68#return; 191842#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 191851#$Ultimate##0 ~n := #in~n; 191937#L25 assume ~n <= 0;#res := 1; 191852#factFINAL assume true; 191827#factEXIT >#70#return; 190981#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 191825#$Ultimate##0 ~n := #in~n; 191058#L25 assume !(~n <= 0); 191059#L26 call #t~ret0 := fact(~n - 1);< 191337#$Ultimate##0 ~n := #in~n; 191338#L25 assume !(~n <= 0); 191281#L26 call #t~ret0 := fact(~n - 1);< 191423#$Ultimate##0 ~n := #in~n; 191338#L25 assume !(~n <= 0); 191281#L26 call #t~ret0 := fact(~n - 1);< 191423#$Ultimate##0 ~n := #in~n; 191338#L25 assume !(~n <= 0); 191281#L26 call #t~ret0 := fact(~n - 1);< 191423#$Ultimate##0 ~n := #in~n; 191338#L25 assume !(~n <= 0); 191281#L26 call #t~ret0 := fact(~n - 1);< 191423#$Ultimate##0 ~n := #in~n; 191338#L25 assume !(~n <= 0); 191281#L26 call #t~ret0 := fact(~n - 1);< 191423#$Ultimate##0 ~n := #in~n; 191068#L25 assume ~n <= 0;#res := 1; 191426#factFINAL assume true; 191422#factEXIT >#66#return; 191419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191402#factFINAL assume true; 191390#factEXIT >#66#return; 191394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191560#factFINAL assume true; 191528#factEXIT >#66#return; 191529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191565#factFINAL assume true; 191537#factEXIT >#66#return; 191536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191481#factFINAL assume true; 191472#factEXIT >#66#return; 191475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191558#factFINAL assume true; 191553#factEXIT >#66#return; 191556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 192161#factFINAL assume true; 192148#factEXIT >#72#return; 190983#L30-3 [2023-02-17 09:41:47,577 INFO L750 eck$LassoCheckResult]: Loop: 190983#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 192141#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 192139#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 192137#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 192105#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 191616#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 191012#$Ultimate##0 ~n := #in~n; 191693#L25 assume !(~n <= 0); 191288#L26 call #t~ret0 := fact(~n - 1);< 191337#$Ultimate##0 ~n := #in~n; 191338#L25 assume !(~n <= 0); 191281#L26 call #t~ret0 := fact(~n - 1);< 191423#$Ultimate##0 ~n := #in~n; 191338#L25 assume !(~n <= 0); 191281#L26 call #t~ret0 := fact(~n - 1);< 191423#$Ultimate##0 ~n := #in~n; 191068#L25 assume ~n <= 0;#res := 1; 191426#factFINAL assume true; 191422#factEXIT >#66#return; 191419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191402#factFINAL assume true; 191390#factEXIT >#66#return; 191394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191560#factFINAL assume true; 191528#factEXIT >#66#return; 191534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191801#factFINAL assume true; 191603#factEXIT >#68#return; 191491#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 191524#$Ultimate##0 ~n := #in~n; 191522#L25 assume !(~n <= 0); 191327#L26 call #t~ret0 := fact(~n - 1);< 191482#$Ultimate##0 ~n := #in~n; 191326#L25 assume ~n <= 0;#res := 1; 191329#factFINAL assume true; 191347#factEXIT >#66#return; 191350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191687#factFINAL assume true; 191684#factEXIT >#70#return; 191371#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 191379#$Ultimate##0 ~n := #in~n; 191380#L25 assume !(~n <= 0); 191330#L26 call #t~ret0 := fact(~n - 1);< 191366#$Ultimate##0 ~n := #in~n; 191362#L25 assume !(~n <= 0); 191067#L26 call #t~ret0 := fact(~n - 1);< 191066#$Ultimate##0 ~n := #in~n; 191068#L25 assume ~n <= 0;#res := 1; 191426#factFINAL assume true; 191422#factEXIT >#66#return; 191419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 191402#factFINAL assume true; 191390#factEXIT >#66#return; 191395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 192152#factFINAL assume true; 192143#factEXIT >#72#return; 190983#L30-3 [2023-02-17 09:41:47,577 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:47,577 INFO L85 PathProgramCache]: Analyzing trace with hash 340632599, now seen corresponding path program 13 times [2023-02-17 09:41:47,578 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:47,578 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1643143832] [2023-02-17 09:41:47,578 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:47,578 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:47,586 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:47,586 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [937556407] [2023-02-17 09:41:47,586 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:41:47,586 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:47,587 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:47,592 INFO L229 MonitoredProcess]: Starting monitored process 167 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:47,593 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (167)] Waiting until timeout for monitored process [2023-02-17 09:41:47,872 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:47,874 INFO L263 TraceCheckSpWp]: Trace formula consists of 484 conjuncts, 7 conjunts are in the unsatisfiable core [2023-02-17 09:41:47,876 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:47,889 INFO L134 CoverageAnalysis]: Checked inductivity of 2102 backedges. 919 proven. 1 refuted. 0 times theorem prover too weak. 1182 trivial. 0 not checked. [2023-02-17 09:41:47,889 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:47,912 INFO L134 CoverageAnalysis]: Checked inductivity of 2102 backedges. 83 proven. 67 refuted. 0 times theorem prover too weak. 1952 trivial. 0 not checked. [2023-02-17 09:41:47,913 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:47,913 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1643143832] [2023-02-17 09:41:47,913 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:47,913 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [937556407] [2023-02-17 09:41:47,913 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [937556407] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:47,914 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:47,914 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 8 [2023-02-17 09:41:47,916 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1342262761] [2023-02-17 09:41:47,916 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:47,917 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:47,917 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:47,917 INFO L85 PathProgramCache]: Analyzing trace with hash -1433305808, now seen corresponding path program 9 times [2023-02-17 09:41:47,918 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:47,918 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1069057964] [2023-02-17 09:41:47,918 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:47,918 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:47,925 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:47,925 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [221692637] [2023-02-17 09:41:47,925 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:47,925 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:47,925 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:47,933 INFO L229 MonitoredProcess]: Starting monitored process 168 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:47,950 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (168)] Waiting until timeout for monitored process [2023-02-17 09:41:48,222 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2023-02-17 09:41:48,223 INFO L229 tOrderPrioritization]: Conjunction of SSA is sat [2023-02-17 09:41:48,223 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2023-02-17 09:41:48,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2023-02-17 09:41:48,242 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2023-02-17 09:41:48,252 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:48,252 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:48,252 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:48,252 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:48,252 INFO L129 ssoRankerPreferences]: Use exernal solver: true [2023-02-17 09:41:48,252 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,252 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:48,252 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:48,252 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration36_Loop [2023-02-17 09:41:48,252 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:48,252 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:48,253 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,254 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,261 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,263 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,267 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:48,267 INFO L404 LassoAnalysis]: Checking for nontermination... [2023-02-17 09:41:48,267 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,268 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,269 INFO L229 MonitoredProcess]: Starting monitored process 169 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,271 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (169)] Waiting until timeout for monitored process [2023-02-17 09:41:48,272 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:48,272 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:48,280 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:48,281 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_main_#t~post8#1=0} Honda state: {ULTIMATE.start_main_#t~post8#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:48,284 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (169)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:48,284 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,284 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,286 INFO L229 MonitoredProcess]: Starting monitored process 170 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,297 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (170)] Waiting until timeout for monitored process [2023-02-17 09:41:48,297 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:48,297 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:48,304 INFO L437 LassoAnalysis]: Proved nontermination for one component. [2023-02-17 09:41:48,305 INFO L440 LassoAnalysis]: Non-Termination argument consisting of: Initial state: {ULTIMATE.start_binomialCoefficient_#res#1=0} Honda state: {ULTIMATE.start_binomialCoefficient_#res#1=0} Generalized eigenvectors: [] Lambdas: [] Nus: [] [2023-02-17 09:41:48,307 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (170)] Ended with exit code 0 [2023-02-17 09:41:48,308 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,308 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,309 INFO L229 MonitoredProcess]: Starting monitored process 171 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,311 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (171)] Waiting until timeout for monitored process [2023-02-17 09:41:48,313 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 0 Nilpotent components: true [2023-02-17 09:41:48,313 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:48,325 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (171)] Ended with exit code 0 [2023-02-17 09:41:48,325 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,325 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,327 INFO L229 MonitoredProcess]: Starting monitored process 172 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,328 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (172)] Waiting until timeout for monitored process [2023-02-17 09:41:48,330 INFO L148 nArgumentSynthesizer]: Nontermination analysis: NONLINEAR Allow bounded executions: true Number of generalized eigenvectors: 3 Nilpotent components: true [2023-02-17 09:41:48,330 INFO L160 nArgumentSynthesizer]: Using integer mode. [2023-02-17 09:41:48,344 INFO L444 LassoAnalysis]: Proving nontermination failed: No geometric nontermination argument exists. [2023-02-17 09:41:48,348 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (172)] Ended with exit code 0 [2023-02-17 09:41:48,348 INFO L210 LassoAnalysis]: Preferences: [2023-02-17 09:41:48,348 INFO L126 ssoRankerPreferences]: Compute integeral hull: false [2023-02-17 09:41:48,348 INFO L127 ssoRankerPreferences]: Enable LassoPartitioneer: true [2023-02-17 09:41:48,348 INFO L128 ssoRankerPreferences]: Term annotations enabled: false [2023-02-17 09:41:48,348 INFO L129 ssoRankerPreferences]: Use exernal solver: false [2023-02-17 09:41:48,348 INFO L130 ssoRankerPreferences]: SMT solver command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,348 INFO L131 ssoRankerPreferences]: Dump SMT script to file: false [2023-02-17 09:41:48,348 INFO L132 ssoRankerPreferences]: Path of dumped script: [2023-02-17 09:41:48,348 INFO L133 ssoRankerPreferences]: Filename of dumped script: Binomial.c_Iteration36_Loop [2023-02-17 09:41:48,348 INFO L134 ssoRankerPreferences]: MapElimAlgo: Frank [2023-02-17 09:41:48,348 INFO L276 LassoAnalysis]: Starting lasso preprocessing... [2023-02-17 09:41:48,349 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,350 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,351 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,352 INFO L117 MapEliminator]: Using MapEliminator with SimplificationTechnique=SIMPLIFY_DDA XnfConversionTechnique=BOTTOM_UP_WITH_LOCAL_SIMPLIFICATION AddInequalities=false OnlyTrivialImplicationsArrayWrite=true OnlyTrivialImplicationsForModifiedArguments=true OnlyArgumentsInFormula=true [2023-02-17 09:41:48,354 INFO L294 LassoAnalysis]: Preprocessing complete. [2023-02-17 09:41:48,354 INFO L490 LassoAnalysis]: Using template 'affine'. [2023-02-17 09:41:48,355 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,355 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,356 INFO L229 MonitoredProcess]: Starting monitored process 173 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,358 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (173)] Waiting until timeout for monitored process [2023-02-17 09:41:48,360 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:48,366 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:48,366 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:48,366 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:48,366 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:48,366 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:48,367 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:48,367 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:48,368 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:48,370 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (173)] Ended with exit code 0 [2023-02-17 09:41:48,371 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,371 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,372 INFO L229 MonitoredProcess]: Starting monitored process 174 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,373 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (174)] Waiting until timeout for monitored process [2023-02-17 09:41:48,375 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:48,382 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:48,382 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:48,382 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:48,382 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:48,382 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:48,382 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:48,382 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:48,383 INFO L527 LassoAnalysis]: Proving termination failed for this template and these settings. [2023-02-17 09:41:48,386 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (174)] Ended with exit code 0 [2023-02-17 09:41:48,386 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,386 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,387 INFO L229 MonitoredProcess]: Starting monitored process 175 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,389 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (175)] Waiting until timeout for monitored process [2023-02-17 09:41:48,391 INFO L120 nArgumentSynthesizer]: Termination Analysis Settings: Termination analysis: LINEAR_WITH_GUESSESNumber of strict supporting invariants: 0Number of non-strict supporting invariants: 1Consider only non-deceasing supporting invariants: trueSimplify termination arguments: trueSimplify supporting invariants: trueOverapproximate stem: false [2023-02-17 09:41:48,397 INFO L338 nArgumentSynthesizer]: Template has degree 0. [2023-02-17 09:41:48,397 INFO L351 nArgumentSynthesizer]: There is no stem transition; disabling supporting invariant generation. [2023-02-17 09:41:48,397 INFO L203 nArgumentSynthesizer]: 1 stem disjuncts [2023-02-17 09:41:48,397 INFO L204 nArgumentSynthesizer]: 1 loop disjuncts [2023-02-17 09:41:48,397 INFO L205 nArgumentSynthesizer]: 2 template conjuncts. [2023-02-17 09:41:48,400 INFO L401 nArgumentSynthesizer]: We have 2 Motzkin's Theorem applications. [2023-02-17 09:41:48,400 INFO L402 nArgumentSynthesizer]: A total of 0 supporting invariants were added. [2023-02-17 09:41:48,410 INFO L420 nArgumentSynthesizer]: Found a termination argument, trying to simplify. [2023-02-17 09:41:48,414 INFO L443 ModelExtractionUtils]: Simplification made 3 calls to the SMT solver. [2023-02-17 09:41:48,414 INFO L444 ModelExtractionUtils]: 9 out of 12 variables were initially zero. Simplification set additionally 0 variables to zero. [2023-02-17 09:41:48,414 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2023-02-17 09:41:48,414 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:48,419 INFO L229 MonitoredProcess]: Starting monitored process 176 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2023-02-17 09:41:48,420 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (176)] Waiting until timeout for monitored process [2023-02-17 09:41:48,421 INFO L435 nArgumentSynthesizer]: Simplifying supporting invariants... [2023-02-17 09:41:48,421 INFO L438 nArgumentSynthesizer]: Removed 0 redundant supporting invariants from a total of 0. [2023-02-17 09:41:48,421 INFO L513 LassoAnalysis]: Proved termination. [2023-02-17 09:41:48,421 INFO L515 LassoAnalysis]: Termination argument consisting of: Ranking function f(ULTIMATE.start_main_~k~0#1, ULTIMATE.start_main_~x~0#1) = -1*ULTIMATE.start_main_~k~0#1 + 1*ULTIMATE.start_main_~x~0#1 Supporting invariants [] [2023-02-17 09:41:48,425 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (175)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:48,425 INFO L156 tatePredicateManager]: 0 out of 0 supporting invariants were superfluous and have been removed [2023-02-17 09:41:48,436 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:48,589 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:48,595 INFO L263 TraceCheckSpWp]: Trace formula consists of 1352 conjuncts, 64 conjunts are in the unsatisfiable core [2023-02-17 09:41:48,598 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:48,705 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:48,706 INFO L263 TraceCheckSpWp]: Trace formula consists of 377 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-17 09:41:48,707 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:48,759 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 174 trivial. 0 not checked. [2023-02-17 09:41:48,760 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and without honda bouncer for loop.2 stem predicates 4 loop predicates [2023-02-17 09:41:48,760 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2373 states and 4660 transitions. cyclomatic complexity: 2315 Second operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:48,822 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2373 states and 4660 transitions. cyclomatic complexity: 2315. Second operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) Result 3467 states and 6208 transitions. Complement of second has 12 states. [2023-02-17 09:41:48,822 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 6 states 2 stem states 3 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:48,823 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:48,823 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2023-02-17 09:41:48,823 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 38 transitions. Stem has 206 letters. Loop has 56 letters. [2023-02-17 09:41:48,823 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:48,823 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-17 09:41:48,831 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:48,981 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:48,988 INFO L263 TraceCheckSpWp]: Trace formula consists of 1352 conjuncts, 64 conjunts are in the unsatisfiable core [2023-02-17 09:41:48,990 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:49,093 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:49,096 INFO L263 TraceCheckSpWp]: Trace formula consists of 377 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-17 09:41:49,097 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:49,149 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 174 trivial. 0 not checked. [2023-02-17 09:41:49,149 INFO L141 lantAutomatonBouncer]: Defining deterministic Buchi interpolant automaton with honda bouncer for stem and with honda bouncer for loop.2 stem predicates 4 loop predicates [2023-02-17 09:41:49,149 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2373 states and 4660 transitions. cyclomatic complexity: 2315 Second operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:49,212 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2373 states and 4660 transitions. cyclomatic complexity: 2315. Second operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) Result 3476 states and 6217 transitions. Complement of second has 14 states. [2023-02-17 09:41:49,212 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 7 states 2 stem states 4 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:49,213 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:49,213 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 39 transitions. [2023-02-17 09:41:49,213 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 7 states and 39 transitions. Stem has 206 letters. Loop has 56 letters. [2023-02-17 09:41:49,213 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:49,213 INFO L681 stractBuchiCegarLoop]: Bad chosen interpolant automaton: word not accepted [2023-02-17 09:41:49,223 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:49,381 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:49,388 INFO L263 TraceCheckSpWp]: Trace formula consists of 1352 conjuncts, 64 conjunts are in the unsatisfiable core [2023-02-17 09:41:49,391 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:49,502 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:41:49,505 INFO L263 TraceCheckSpWp]: Trace formula consists of 377 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-17 09:41:49,506 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:49,568 INFO L134 CoverageAnalysis]: Checked inductivity of 174 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 174 trivial. 0 not checked. [2023-02-17 09:41:49,568 INFO L141 lantAutomatonBouncer]: Defining Buchi interpolant automaton with scrooge nondeterminism in stemwith honda bouncer for stem and without honda bouncer for loop.2 stem predicates 4 loop predicates [2023-02-17 09:41:49,569 INFO L71 iDifferenceNCSBLazy3]: Start buchiDifferenceNCSBLazy3. First operand 2373 states and 4660 transitions. cyclomatic complexity: 2315 Second operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:49,669 INFO L75 iDifferenceNCSBLazy3]: Finished buchiDifferenceNCSBLazy3. First operand 2373 states and 4660 transitions. cyclomatic complexity: 2315. Second operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) Result 4571 states and 9006 transitions. Complement of second has 14 states. [2023-02-17 09:41:49,669 INFO L141 InterpolantAutomaton]: Switched to read-only mode: Buchi interpolant automaton has 6 states 2 stem states 3 non-accepting loop states 1 accepting loop states [2023-02-17 09:41:49,670 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.285714285714286) internal successors, (30), 6 states have internal predecessors, (30), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (12), 5 states have call predecessors, (12), 4 states have call successors, (12) [2023-02-17 09:41:49,670 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 65 transitions. [2023-02-17 09:41:49,670 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 65 transitions. Stem has 206 letters. Loop has 56 letters. [2023-02-17 09:41:49,671 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:49,671 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 65 transitions. Stem has 262 letters. Loop has 56 letters. [2023-02-17 09:41:49,671 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:49,672 INFO L84 BuchiAccepts]: Start buchiAccepts Operand 6 states and 65 transitions. Stem has 206 letters. Loop has 112 letters. [2023-02-17 09:41:49,672 INFO L116 BuchiAccepts]: Finished buchiAccepts. [2023-02-17 09:41:49,673 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4571 states and 9006 transitions. [2023-02-17 09:41:49,709 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 197 [2023-02-17 09:41:49,737 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4571 states to 2691 states and 5260 transitions. [2023-02-17 09:41:49,737 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 335 [2023-02-17 09:41:49,737 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 341 [2023-02-17 09:41:49,737 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2691 states and 5260 transitions. [2023-02-17 09:41:49,738 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:49,738 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2691 states and 5260 transitions. [2023-02-17 09:41:49,739 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2691 states and 5260 transitions. [2023-02-17 09:41:49,788 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2691 to 2668. [2023-02-17 09:41:49,791 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2668 states, 1601 states have (on average 1.0555902560899437) internal successors, (1690), 1591 states have internal predecessors, (1690), 695 states have call successors, (747), 376 states have call predecessors, (747), 372 states have return successors, (2789), 700 states have call predecessors, (2789), 695 states have call successors, (2789) [2023-02-17 09:41:49,803 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2668 states to 2668 states and 5226 transitions. [2023-02-17 09:41:49,803 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2668 states and 5226 transitions. [2023-02-17 09:41:49,803 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:49,803 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2023-02-17 09:41:49,803 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=16, Invalid=40, Unknown=0, NotChecked=0, Total=56 [2023-02-17 09:41:49,804 INFO L87 Difference]: Start difference. First operand 2668 states and 5226 transitions. Second operand has 8 states, 7 states have (on average 6.285714285714286) internal successors, (44), 8 states have internal predecessors, (44), 4 states have call successors, (21), 2 states have call predecessors, (21), 3 states have return successors, (21), 3 states have call predecessors, (21), 4 states have call successors, (21) [2023-02-17 09:41:49,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:49,942 INFO L93 Difference]: Finished difference Result 2175 states and 3784 transitions. [2023-02-17 09:41:49,942 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2175 states and 3784 transitions. [2023-02-17 09:41:50,011 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 196 [2023-02-17 09:41:50,025 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (176)] Forceful destruction successful, exit code 0 [2023-02-17 09:41:50,038 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2175 states to 2168 states and 3763 transitions. [2023-02-17 09:41:50,038 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 314 [2023-02-17 09:41:50,039 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 362 [2023-02-17 09:41:50,039 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2168 states and 3763 transitions. [2023-02-17 09:41:50,039 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:50,039 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2168 states and 3763 transitions. [2023-02-17 09:41:50,040 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2168 states and 3763 transitions. [2023-02-17 09:41:50,083 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2168 to 2168. [2023-02-17 09:41:50,085 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2168 states, 1347 states have (on average 1.0504825538233111) internal successors, (1415), 1337 states have internal predecessors, (1415), 492 states have call successors, (524), 332 states have call predecessors, (524), 329 states have return successors, (1824), 498 states have call predecessors, (1824), 492 states have call successors, (1824) [2023-02-17 09:41:50,092 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2168 states to 2168 states and 3763 transitions. [2023-02-17 09:41:50,092 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2168 states and 3763 transitions. [2023-02-17 09:41:50,092 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2023-02-17 09:41:50,092 INFO L428 stractBuchiCegarLoop]: Abstraction has 2168 states and 3763 transitions. [2023-02-17 09:41:50,093 INFO L335 stractBuchiCegarLoop]: ======== Iteration 37 ============ [2023-02-17 09:41:50,093 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2168 states and 3763 transitions. [2023-02-17 09:41:50,098 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 196 [2023-02-17 09:41:50,098 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:50,098 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:50,100 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [21, 21, 13, 8, 8, 8, 8, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:50,100 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [44, 44, 32, 32, 32, 32, 12, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:50,100 INFO L748 eck$LassoCheckResult]: Stem: 213502#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 213440#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 213441#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 213461#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 213503#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 213766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 213764#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 213761#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 213762#$Ultimate##0 ~n := #in~n; 213768#L25 assume ~n <= 0;#res := 1; 213767#factFINAL assume true; 213760#factEXIT >#68#return; 213757#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 213758#$Ultimate##0 ~n := #in~n; 213765#L25 assume ~n <= 0;#res := 1; 213763#factFINAL assume true; 213756#factEXIT >#70#return; 213753#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 213754#$Ultimate##0 ~n := #in~n; 213759#L25 assume ~n <= 0;#res := 1; 213755#factFINAL assume true; 213752#factEXIT >#72#return; 213718#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 213717#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 213715#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 213712#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 213707#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 213708#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 214830#$Ultimate##0 ~n := #in~n; 214838#L25 assume !(~n <= 0); 214835#L26 call #t~ret0 := fact(~n - 1);< 214836#$Ultimate##0 ~n := #in~n; 214839#L25 assume ~n <= 0;#res := 1; 214837#factFINAL assume true; 214834#factEXIT >#66#return; 214833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214832#factFINAL assume true; 214829#factEXIT >#74#return; 214826#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 214827#$Ultimate##0 ~n := #in~n; 214831#L25 assume ~n <= 0;#res := 1; 214828#factFINAL assume true; 214825#factEXIT >#76#return; 213504#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 213505#$Ultimate##0 ~n := #in~n; 214781#L25 assume !(~n <= 0); 214778#L26 call #t~ret0 := fact(~n - 1);< 214779#$Ultimate##0 ~n := #in~n; 214782#L25 assume ~n <= 0;#res := 1; 214780#factFINAL assume true; 214777#factEXIT >#66#return; 214776#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214775#factFINAL assume true; 213510#factEXIT >#78#return; 213511#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 213462#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 213463#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 214769#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 214768#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 213453#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 213454#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 213466#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 213467#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 213490#$Ultimate##0 ~n := #in~n; 214767#L25 assume !(~n <= 0); 214764#L26 call #t~ret0 := fact(~n - 1);< 214765#$Ultimate##0 ~n := #in~n; 214770#L25 assume ~n <= 0;#res := 1; 214766#factFINAL assume true; 214763#factEXIT >#66#return; 214762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214761#factFINAL assume true; 214759#factEXIT >#68#return; 214748#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 214757#$Ultimate##0 ~n := #in~n; 214760#L25 assume ~n <= 0;#res := 1; 214758#factFINAL assume true; 214746#factEXIT >#70#return; 213383#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 213384#$Ultimate##0 ~n := #in~n; 214742#L25 assume !(~n <= 0); 214739#L26 call #t~ret0 := fact(~n - 1);< 214740#$Ultimate##0 ~n := #in~n; 214743#L25 assume ~n <= 0;#res := 1; 214741#factFINAL assume true; 214738#factEXIT >#66#return; 214737#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214736#factFINAL assume true; 213508#factEXIT >#72#return; 213509#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 214729#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 214726#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 214710#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 214708#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 214694#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 214706#$Ultimate##0 ~n := #in~n; 214997#L25 assume !(~n <= 0); 214718#L26 call #t~ret0 := fact(~n - 1);< 214858#$Ultimate##0 ~n := #in~n; 214730#L25 assume ~n <= 0;#res := 1; 214727#factFINAL assume true; 214711#factEXIT >#66#return; 214709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214707#factFINAL assume true; 214704#factEXIT >#68#return; 214698#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 214703#$Ultimate##0 ~n := #in~n; 214745#L25 assume !(~n <= 0); 214721#L26 call #t~ret0 := fact(~n - 1);< 214725#$Ultimate##0 ~n := #in~n; 214730#L25 assume ~n <= 0;#res := 1; 214727#factFINAL assume true; 214711#factEXIT >#66#return; 214709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214707#factFINAL assume true; 214704#factEXIT >#70#return; 214643#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 214659#$Ultimate##0 ~n := #in~n; 214661#L25 assume ~n <= 0;#res := 1; 214660#factFINAL assume true; 214634#factEXIT >#72#return; 214658#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 214630#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 214631#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 214951#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 214950#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 213379#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 213380#$Ultimate##0 ~n := #in~n; 215477#L25 assume !(~n <= 0); 213398#L26 call #t~ret0 := fact(~n - 1);< 215475#$Ultimate##0 ~n := #in~n; 215485#L25 assume !(~n <= 0); 213388#L26 call #t~ret0 := fact(~n - 1);< 215517#$Ultimate##0 ~n := #in~n; 215524#L25 assume ~n <= 0;#res := 1; 215523#factFINAL assume true; 215516#factEXIT >#66#return; 215513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215508#factFINAL assume true; 215494#factEXIT >#66#return; 215489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215486#factFINAL assume true; 215462#factEXIT >#74#return; 213420#L30-6 [2023-02-17 09:41:50,101 INFO L750 eck$LassoCheckResult]: Loop: 213420#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 213497#$Ultimate##0 ~n := #in~n; 215504#L25 assume !(~n <= 0); 213393#L26 call #t~ret0 := fact(~n - 1);< 215501#$Ultimate##0 ~n := #in~n; 215484#L25 assume ~n <= 0;#res := 1; 215483#factFINAL assume true; 215472#factEXIT >#66#return; 215471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215467#factFINAL assume true; 215458#factEXIT >#76#return; 213494#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 213493#$Ultimate##0 ~n := #in~n; 213495#L25 assume !(~n <= 0); 215473#L26 call #t~ret0 := fact(~n - 1);< 215474#$Ultimate##0 ~n := #in~n; 215484#L25 assume ~n <= 0;#res := 1; 215483#factFINAL assume true; 215472#factEXIT >#66#return; 215471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215467#factFINAL assume true; 215458#factEXIT >#78#return; 213442#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 213443#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 213500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 213501#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 213459#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 213460#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 213486#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 213487#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 213405#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 213406#$Ultimate##0 ~n := #in~n; 214796#L25 assume !(~n <= 0); 214792#L26 call #t~ret0 := fact(~n - 1);< 214795#$Ultimate##0 ~n := #in~n; 214771#L25 assume !(~n <= 0); 214791#L26 call #t~ret0 := fact(~n - 1);< 215279#$Ultimate##0 ~n := #in~n; 215280#L25 assume ~n <= 0;#res := 1; 215294#factFINAL assume true; 215293#factEXIT >#66#return; 215292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215290#factFINAL assume true; 214790#factEXIT >#66#return; 214794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215333#factFINAL assume true; 215331#factEXIT >#68#return; 214752#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 214757#$Ultimate##0 ~n := #in~n; 214760#L25 assume ~n <= 0;#res := 1; 214758#factFINAL assume true; 214746#factEXIT >#70#return; 214732#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 215322#$Ultimate##0 ~n := #in~n; 215420#L25 assume !(~n <= 0); 215301#L26 call #t~ret0 := fact(~n - 1);< 215417#$Ultimate##0 ~n := #in~n; 214744#L25 assume !(~n <= 0); 215300#L26 call #t~ret0 := fact(~n - 1);< 215425#$Ultimate##0 ~n := #in~n; 214744#L25 assume !(~n <= 0); 215300#L26 call #t~ret0 := fact(~n - 1);< 215425#$Ultimate##0 ~n := #in~n; 214744#L25 assume !(~n <= 0); 215300#L26 call #t~ret0 := fact(~n - 1);< 215425#$Ultimate##0 ~n := #in~n; 214744#L25 assume !(~n <= 0); 215300#L26 call #t~ret0 := fact(~n - 1);< 215425#$Ultimate##0 ~n := #in~n; 214744#L25 assume !(~n <= 0); 215300#L26 call #t~ret0 := fact(~n - 1);< 215425#$Ultimate##0 ~n := #in~n; 214744#L25 assume !(~n <= 0); 215300#L26 call #t~ret0 := fact(~n - 1);< 215425#$Ultimate##0 ~n := #in~n; 215428#L25 assume ~n <= 0;#res := 1; 215427#factFINAL assume true; 215424#factEXIT >#66#return; 215422#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215415#factFINAL assume true; 215299#factEXIT >#66#return; 215303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215418#factFINAL assume true; 215413#factEXIT >#66#return; 215412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215409#factFINAL assume true; 215379#factEXIT >#66#return; 215377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215368#factFINAL assume true; 215356#factEXIT >#66#return; 215361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215398#factFINAL assume true; 215391#factEXIT >#66#return; 215390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215387#factFINAL assume true; 215385#factEXIT >#66#return; 215386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215401#factFINAL assume true; 215346#factEXIT >#72#return; 213455#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 213456#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 214949#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 214947#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 214946#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 214697#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 214788#$Ultimate##0 ~n := #in~n; 214859#L25 assume !(~n <= 0); 214845#L26 call #t~ret0 := fact(~n - 1);< 214856#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 214867#L25 assume ~n <= 0;#res := 1; 214865#factFINAL assume true; 214861#factEXIT >#66#return; 214860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214857#factFINAL assume true; 214842#factEXIT >#66#return; 214855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214922#factFINAL assume true; 214918#factEXIT >#66#return; 214916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214914#factFINAL assume true; 214909#factEXIT >#66#return; 214908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214906#factFINAL assume true; 214890#factEXIT >#66#return; 214889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214888#factFINAL assume true; 214887#factEXIT >#68#return; 214689#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 214703#$Ultimate##0 ~n := #in~n; 214745#L25 assume !(~n <= 0); 214721#L26 call #t~ret0 := fact(~n - 1);< 214725#$Ultimate##0 ~n := #in~n; 215273#L25 assume !(~n <= 0); 214846#L26 call #t~ret0 := fact(~n - 1);< 214877#$Ultimate##0 ~n := #in~n; 214875#L25 assume !(~n <= 0); 214848#L26 call #t~ret0 := fact(~n - 1);< 214871#$Ultimate##0 ~n := #in~n; 214870#L25 assume !(~n <= 0); 214850#L26 call #t~ret0 := fact(~n - 1);< 214869#$Ultimate##0 ~n := #in~n; 214867#L25 assume ~n <= 0;#res := 1; 214865#factFINAL assume true; 214861#factEXIT >#66#return; 214860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214857#factFINAL assume true; 214842#factEXIT >#66#return; 214855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214922#factFINAL assume true; 214918#factEXIT >#66#return; 214916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214914#factFINAL assume true; 214909#factEXIT >#66#return; 214800#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214786#factFINAL assume true; 214787#factEXIT >#70#return; 214645#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 214884#$Ultimate##0 ~n := #in~n; 214883#L25 assume !(~n <= 0); 214712#L26 call #t~ret0 := fact(~n - 1);< 214878#$Ultimate##0 ~n := #in~n; 214730#L25 assume ~n <= 0;#res := 1; 214727#factFINAL assume true; 214711#factEXIT >#66#return; 214723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214969#factFINAL assume true; 214811#factEXIT >#72#return; 213457#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 213458#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 213470#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 213488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 213468#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 213469#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 214788#$Ultimate##0 ~n := #in~n; 214859#L25 assume !(~n <= 0); 214845#L26 call #t~ret0 := fact(~n - 1);< 214856#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 215258#L25 assume !(~n <= 0); 214851#L26 call #t~ret0 := fact(~n - 1);< 214863#$Ultimate##0 ~n := #in~n; 214867#L25 assume ~n <= 0;#res := 1; 214865#factFINAL assume true; 214861#factEXIT >#66#return; 214860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214857#factFINAL assume true; 214842#factEXIT >#66#return; 214855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214922#factFINAL assume true; 214918#factEXIT >#66#return; 214916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214914#factFINAL assume true; 214909#factEXIT >#66#return; 214908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214906#factFINAL assume true; 214890#factEXIT >#66#return; 214889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214888#factFINAL assume true; 214887#factEXIT >#68#return; 214690#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 214703#$Ultimate##0 ~n := #in~n; 214745#L25 assume !(~n <= 0); 214721#L26 call #t~ret0 := fact(~n - 1);< 214725#$Ultimate##0 ~n := #in~n; 215273#L25 assume !(~n <= 0); 214846#L26 call #t~ret0 := fact(~n - 1);< 214877#$Ultimate##0 ~n := #in~n; 214875#L25 assume !(~n <= 0); 214848#L26 call #t~ret0 := fact(~n - 1);< 214871#$Ultimate##0 ~n := #in~n; 214870#L25 assume !(~n <= 0); 214850#L26 call #t~ret0 := fact(~n - 1);< 214869#$Ultimate##0 ~n := #in~n; 214867#L25 assume ~n <= 0;#res := 1; 214865#factFINAL assume true; 214861#factEXIT >#66#return; 214860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214857#factFINAL assume true; 214842#factEXIT >#66#return; 214855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214922#factFINAL assume true; 214918#factEXIT >#66#return; 214916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214914#factFINAL assume true; 214909#factEXIT >#66#return; 214800#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 214786#factFINAL assume true; 214787#factEXIT >#70#return; 214637#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 214884#$Ultimate##0 ~n := #in~n; 214883#L25 assume ~n <= 0;#res := 1; 214660#factFINAL assume true; 214634#factEXIT >#72#return; 214656#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 215070#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 215069#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 214664#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 214662#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 213418#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 215468#$Ultimate##0 ~n := #in~n; 215502#L25 assume !(~n <= 0); 213395#L26 call #t~ret0 := fact(~n - 1);< 215497#$Ultimate##0 ~n := #in~n; 215485#L25 assume !(~n <= 0); 213388#L26 call #t~ret0 := fact(~n - 1);< 215517#$Ultimate##0 ~n := #in~n; 215524#L25 assume ~n <= 0;#res := 1; 215523#factFINAL assume true; 215516#factEXIT >#66#return; 215513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215508#factFINAL assume true; 215494#factEXIT >#66#return; 215489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 215486#factFINAL assume true; 215462#factEXIT >#74#return; 213420#L30-6 [2023-02-17 09:41:50,102 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:50,102 INFO L85 PathProgramCache]: Analyzing trace with hash -1284976975, now seen corresponding path program 14 times [2023-02-17 09:41:50,102 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:50,102 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1826502176] [2023-02-17 09:41:50,102 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:50,103 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:50,114 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:50,114 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [344079634] [2023-02-17 09:41:50,115 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:50,115 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:50,115 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:50,117 INFO L229 MonitoredProcess]: Starting monitored process 177 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:50,118 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (177)] Waiting until timeout for monitored process [2023-02-17 09:41:50,379 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:50,379 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:50,380 INFO L263 TraceCheckSpWp]: Trace formula consists of 343 conjuncts, 8 conjunts are in the unsatisfiable core [2023-02-17 09:41:50,381 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:50,411 INFO L134 CoverageAnalysis]: Checked inductivity of 944 backedges. 243 proven. 35 refuted. 0 times theorem prover too weak. 666 trivial. 0 not checked. [2023-02-17 09:41:50,411 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:50,450 INFO L134 CoverageAnalysis]: Checked inductivity of 944 backedges. 2 proven. 35 refuted. 0 times theorem prover too weak. 907 trivial. 0 not checked. [2023-02-17 09:41:50,450 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:50,450 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1826502176] [2023-02-17 09:41:50,450 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:50,451 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [344079634] [2023-02-17 09:41:50,451 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [344079634] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:50,451 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:50,451 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 8] total 14 [2023-02-17 09:41:50,451 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2114431540] [2023-02-17 09:41:50,451 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:50,451 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:50,452 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:50,452 INFO L85 PathProgramCache]: Analyzing trace with hash -736878146, now seen corresponding path program 8 times [2023-02-17 09:41:50,452 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:50,452 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [997171133] [2023-02-17 09:41:50,452 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:50,452 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:50,462 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:50,462 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [901269990] [2023-02-17 09:41:50,462 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:41:50,462 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:50,462 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:50,465 INFO L229 MonitoredProcess]: Starting monitored process 178 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:50,466 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (178)] Waiting until timeout for monitored process [2023-02-17 09:41:50,759 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:41:50,759 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:50,761 INFO L263 TraceCheckSpWp]: Trace formula consists of 596 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:41:50,763 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:50,832 INFO L134 CoverageAnalysis]: Checked inductivity of 4813 backedges. 2425 proven. 145 refuted. 0 times theorem prover too weak. 2243 trivial. 0 not checked. [2023-02-17 09:41:50,832 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:50,972 INFO L134 CoverageAnalysis]: Checked inductivity of 4813 backedges. 171 proven. 867 refuted. 0 times theorem prover too weak. 3775 trivial. 0 not checked. [2023-02-17 09:41:50,972 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:50,972 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [997171133] [2023-02-17 09:41:50,972 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:50,972 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [901269990] [2023-02-17 09:41:50,972 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [901269990] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:50,972 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:50,973 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 17] total 20 [2023-02-17 09:41:50,973 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1900165203] [2023-02-17 09:41:50,973 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:50,973 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:50,973 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:50,973 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2023-02-17 09:41:50,973 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=129, Unknown=0, NotChecked=0, Total=182 [2023-02-17 09:41:50,974 INFO L87 Difference]: Start difference. First operand 2168 states and 3763 transitions. cyclomatic complexity: 1620 Second operand has 14 states, 14 states have (on average 4.0) internal successors, (56), 14 states have internal predecessors, (56), 8 states have call successors, (22), 2 states have call predecessors, (22), 2 states have return successors, (22), 8 states have call predecessors, (22), 8 states have call successors, (22) [2023-02-17 09:41:51,311 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:51,311 INFO L93 Difference]: Finished difference Result 2570 states and 5533 transitions. [2023-02-17 09:41:51,311 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2570 states and 5533 transitions. [2023-02-17 09:41:51,326 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 320 [2023-02-17 09:41:51,338 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2570 states to 2265 states and 4323 transitions. [2023-02-17 09:41:51,338 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 339 [2023-02-17 09:41:51,339 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 339 [2023-02-17 09:41:51,339 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2265 states and 4323 transitions. [2023-02-17 09:41:51,339 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:51,339 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2265 states and 4323 transitions. [2023-02-17 09:41:51,340 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2265 states and 4323 transitions. [2023-02-17 09:41:51,375 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2265 to 2124. [2023-02-17 09:41:51,377 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2124 states, 1327 states have (on average 1.048229088168802) internal successors, (1391), 1314 states have internal predecessors, (1391), 473 states have call successors, (505), 325 states have call predecessors, (505), 324 states have return successors, (1779), 484 states have call predecessors, (1779), 473 states have call successors, (1779) [2023-02-17 09:41:51,385 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2124 states to 2124 states and 3675 transitions. [2023-02-17 09:41:51,385 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2124 states and 3675 transitions. [2023-02-17 09:41:51,385 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 24 states. [2023-02-17 09:41:51,386 INFO L428 stractBuchiCegarLoop]: Abstraction has 2124 states and 3675 transitions. [2023-02-17 09:41:51,386 INFO L335 stractBuchiCegarLoop]: ======== Iteration 38 ============ [2023-02-17 09:41:51,386 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2124 states and 3675 transitions. [2023-02-17 09:41:51,391 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 184 [2023-02-17 09:41:51,391 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:51,391 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:51,393 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [36, 36, 19, 17, 17, 17, 17, 7, 6, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:51,394 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [52, 52, 37, 37, 37, 37, 15, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1] [2023-02-17 09:41:51,394 INFO L748 eck$LassoCheckResult]: Stem: 220770#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 220714#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 220715#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 220735#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 220727#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 220728#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 221150#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 221146#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 221147#$Ultimate##0 ~n := #in~n; 221151#L25 assume ~n <= 0;#res := 1; 221149#factFINAL assume true; 221145#factEXIT >#68#return; 221132#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 221133#$Ultimate##0 ~n := #in~n; 221148#L25 assume ~n <= 0;#res := 1; 221144#factFINAL assume true; 221131#factEXIT >#70#return; 221119#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 221120#$Ultimate##0 ~n := #in~n; 221129#L25 assume ~n <= 0;#res := 1; 221128#factFINAL assume true; 221118#factEXIT >#72#return; 221116#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 221114#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 221113#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 221111#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 221109#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 221103#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 221107#$Ultimate##0 ~n := #in~n; 221105#L25 assume !(~n <= 0); 221088#L26 call #t~ret0 := fact(~n - 1);< 221091#$Ultimate##0 ~n := #in~n; 221130#L25 assume ~n <= 0;#res := 1; 221102#factFINAL assume true; 221087#factEXIT >#66#return; 221090#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221125#factFINAL assume true; 221124#factEXIT >#74#return; 221122#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 221123#$Ultimate##0 ~n := #in~n; 221127#L25 assume ~n <= 0;#res := 1; 221126#factFINAL assume true; 221121#factEXIT >#76#return; 221076#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 221077#$Ultimate##0 ~n := #in~n; 221093#L25 assume !(~n <= 0); 221089#L26 call #t~ret0 := fact(~n - 1);< 221091#$Ultimate##0 ~n := #in~n; 221130#L25 assume ~n <= 0;#res := 1; 221102#factFINAL assume true; 221087#factEXIT >#66#return; 221084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221080#factFINAL assume true; 221075#factEXIT >#78#return; 221073#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 221072#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 221070#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 221068#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 221065#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 221030#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 221032#$Ultimate##0 ~n := #in~n; 221051#L25 assume !(~n <= 0); 221044#L26 call #t~ret0 := fact(~n - 1);< 221045#$Ultimate##0 ~n := #in~n; 221079#L25 assume !(~n <= 0); 221043#L26 call #t~ret0 := fact(~n - 1);< 221059#$Ultimate##0 ~n := #in~n; 221078#L25 assume ~n <= 0;#res := 1; 221074#factFINAL assume true; 221071#factEXIT >#66#return; 221069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221067#factFINAL assume true; 221057#factEXIT >#66#return; 221058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221135#factFINAL assume true; 221134#factEXIT >#74#return; 221026#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 221027#$Ultimate##0 ~n := #in~n; 221036#L25 assume ~n <= 0;#res := 1; 221028#factFINAL assume true; 221024#factEXIT >#76#return; 220794#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 220922#$Ultimate##0 ~n := #in~n; 220920#L25 assume !(~n <= 0); 220822#L26 call #t~ret0 := fact(~n - 1);< 220896#$Ultimate##0 ~n := #in~n; 220975#L25 assume !(~n <= 0); 220821#L26 call #t~ret0 := fact(~n - 1);< 220936#$Ultimate##0 ~n := #in~n; 220979#L25 assume ~n <= 0;#res := 1; 220976#factFINAL assume true; 220935#factEXIT >#66#return; 220932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 220918#factFINAL assume true; 220894#factEXIT >#66#return; 220895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221159#factFINAL assume true; 220793#factEXIT >#78#return; 220795#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 220736#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 220737#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 220778#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 220779#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 220862#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 220863#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 220740#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 220741#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 221955#$Ultimate##0 ~n := #in~n; 221956#L25 assume !(~n <= 0); 221964#L26 call #t~ret0 := fact(~n - 1);< 221965#$Ultimate##0 ~n := #in~n; 221967#L25 assume ~n <= 0;#res := 1; 221966#factFINAL assume true; 221963#factEXIT >#66#return; 221962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221961#factFINAL assume true; 221960#factEXIT >#68#return; 220755#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 220756#$Ultimate##0 ~n := #in~n; 221954#L25 assume ~n <= 0;#res := 1; 221953#factFINAL assume true; 221942#factEXIT >#70#return; 220697#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 220698#$Ultimate##0 ~n := #in~n; 222139#L25 assume !(~n <= 0); 220746#L26 call #t~ret0 := fact(~n - 1);< 222138#$Ultimate##0 ~n := #in~n; 222397#L25 assume ~n <= 0;#res := 1; 222396#factFINAL assume true; 222395#factEXIT >#66#return; 222393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222390#factFINAL assume true; 222388#factEXIT >#72#return; 220729#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 220730#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 222421#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 222418#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 222417#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 222329#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 222341#$Ultimate##0 ~n := #in~n; 222321#L25 assume !(~n <= 0); 222063#L26 call #t~ret0 := fact(~n - 1);< 222286#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222469#factFINAL assume true; 222369#factEXIT >#68#return; 222302#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 222320#$Ultimate##0 ~n := #in~n; 222319#L25 assume !(~n <= 0); 222227#L26 call #t~ret0 := fact(~n - 1);< 222290#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222469#factFINAL assume true; 222369#factEXIT >#70#return; 221914#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 221939#$Ultimate##0 ~n := #in~n; 221941#L25 assume ~n <= 0;#res := 1; 221940#factFINAL assume true; 221913#factEXIT >#72#return; 221912#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 221910#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 221911#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 222263#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 222256#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 221173#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 220767#$Ultimate##0 ~n := #in~n; 222422#L25 assume !(~n <= 0); 222043#L26 call #t~ret0 := fact(~n - 1);< 222286#$Ultimate##0 ~n := #in~n; 222287#L25 assume !(~n <= 0); 222065#L26 call #t~ret0 := fact(~n - 1);< 222288#$Ultimate##0 ~n := #in~n; 222279#L25 assume ~n <= 0;#res := 1; 222278#factFINAL assume true; 222266#factEXIT >#66#return; 222262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222252#factFINAL assume true; 222236#factEXIT >#66#return; 222235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222220#factFINAL assume true; 222218#factEXIT >#74#return; 222201#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 222216#$Ultimate##0 ~n := #in~n; 222291#L25 assume !(~n <= 0); 222229#L26 call #t~ret0 := fact(~n - 1);< 222290#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222215#factFINAL assume true; 222198#factEXIT >#76#return; 222211#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 222214#$Ultimate##0 ~n := #in~n; 222346#L25 assume !(~n <= 0); 222223#L26 call #t~ret0 := fact(~n - 1);< 222233#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222215#factFINAL assume true; 222198#factEXIT >#78#return; 222197#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 222195#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 222158#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 222153#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 222149#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 220687#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 220688#$Ultimate##0 ~n := #in~n; 222176#L25 assume !(~n <= 0); 222014#L26 call #t~ret0 := fact(~n - 1);< 222110#$Ultimate##0 ~n := #in~n; 222106#L25 assume !(~n <= 0); 222015#L26 call #t~ret0 := fact(~n - 1);< 222080#$Ultimate##0 ~n := #in~n; 222106#L25 assume !(~n <= 0); 222015#L26 call #t~ret0 := fact(~n - 1);< 222080#$Ultimate##0 ~n := #in~n; 222171#L25 assume ~n <= 0;#res := 1; 222168#factFINAL assume true; 222161#factEXIT >#66#return; 222159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222154#factFINAL assume true; 222150#factEXIT >#66#return; 222151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222186#factFINAL assume true; 222155#factEXIT >#66#return; 222152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222147#factFINAL assume true; 222098#factEXIT >#74#return; 220764#L30-6 [2023-02-17 09:41:51,394 INFO L750 eck$LassoCheckResult]: Loop: 220764#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 220765#$Ultimate##0 ~n := #in~n; 222094#L25 assume !(~n <= 0); 222097#L26 call #t~ret0 := fact(~n - 1);< 222172#$Ultimate##0 ~n := #in~n; 222170#L25 assume !(~n <= 0); 222077#L26 call #t~ret0 := fact(~n - 1);< 222167#$Ultimate##0 ~n := #in~n; 222171#L25 assume ~n <= 0;#res := 1; 222168#factFINAL assume true; 222161#factEXIT >#66#return; 222159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222154#factFINAL assume true; 222150#factEXIT >#66#return; 222146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222143#factFINAL assume true; 222142#factEXIT >#76#return; 222141#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 222144#$Ultimate##0 ~n := #in~n; 222178#L25 assume !(~n <= 0); 220721#L26 call #t~ret0 := fact(~n - 1);< 222108#$Ultimate##0 ~n := #in~n; 222105#L25 assume !(~n <= 0); 220720#L26 call #t~ret0 := fact(~n - 1);< 220723#$Ultimate##0 ~n := #in~n; 222171#L25 assume ~n <= 0;#res := 1; 222168#factFINAL assume true; 222161#factEXIT >#66#return; 222159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222154#factFINAL assume true; 222150#factEXIT >#66#return; 222146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222143#factFINAL assume true; 222142#factEXIT >#78#return; 220716#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 220717#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 220768#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 220769#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 220733#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 220734#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 220749#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 220750#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 220710#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 220711#$Ultimate##0 ~n := #in~n; 221982#L25 assume !(~n <= 0); 221979#L26 call #t~ret0 := fact(~n - 1);< 221981#$Ultimate##0 ~n := #in~n; 221968#L25 assume !(~n <= 0); 221978#L26 call #t~ret0 := fact(~n - 1);< 221986#$Ultimate##0 ~n := #in~n; 221968#L25 assume !(~n <= 0); 221978#L26 call #t~ret0 := fact(~n - 1);< 221986#$Ultimate##0 ~n := #in~n; 221968#L25 assume !(~n <= 0); 221978#L26 call #t~ret0 := fact(~n - 1);< 221986#$Ultimate##0 ~n := #in~n; 221968#L25 assume !(~n <= 0); 221978#L26 call #t~ret0 := fact(~n - 1);< 221986#$Ultimate##0 ~n := #in~n; 221968#L25 assume !(~n <= 0); 221978#L26 call #t~ret0 := fact(~n - 1);< 221986#$Ultimate##0 ~n := #in~n; 221968#L25 assume !(~n <= 0); 221978#L26 call #t~ret0 := fact(~n - 1);< 221986#$Ultimate##0 ~n := #in~n; 221987#L25 assume ~n <= 0;#res := 1; 222002#factFINAL assume true; 222001#factEXIT >#66#return; 222000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221998#factFINAL assume true; 221977#factEXIT >#66#return; 221980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221999#factFINAL assume true; 221997#factEXIT >#66#return; 221996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221995#factFINAL assume true; 221993#factEXIT >#66#return; 221992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221991#factFINAL assume true; 221989#factEXIT >#66#return; 221988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 221985#factFINAL assume true; 221983#factEXIT >#66#return; 221984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222379#factFINAL assume true; 222376#factEXIT >#66#return; 222375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222372#factFINAL assume true; 221969#factEXIT >#68#return; 221943#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 221955#$Ultimate##0 ~n := #in~n; 221956#L25 assume ~n <= 0;#res := 1; 221953#factFINAL assume true; 221942#factEXIT >#70#return; 221949#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 222034#$Ultimate##0 ~n := #in~n; 222035#L25 assume !(~n <= 0); 222131#L26 call #t~ret0 := fact(~n - 1);< 222136#$Ultimate##0 ~n := #in~n; 222134#L25 assume !(~n <= 0); 222125#L26 call #t~ret0 := fact(~n - 1);< 222129#$Ultimate##0 ~n := #in~n; 222126#L25 assume !(~n <= 0); 222117#L26 call #t~ret0 := fact(~n - 1);< 222121#$Ultimate##0 ~n := #in~n; 222119#L25 assume !(~n <= 0); 222107#L26 call #t~ret0 := fact(~n - 1);< 222115#$Ultimate##0 ~n := #in~n; 222113#L25 assume !(~n <= 0); 222087#L26 call #t~ret0 := fact(~n - 1);< 222093#$Ultimate##0 ~n := #in~n; 222090#L25 assume !(~n <= 0); 220745#L26 call #t~ret0 := fact(~n - 1);< 222085#$Ultimate##0 ~n := #in~n; 222082#L25 assume !(~n <= 0); 220692#L26 call #t~ret0 := fact(~n - 1);< 222079#$Ultimate##0 ~n := #in~n; 220752#L25 assume ~n <= 0;#res := 1; 220701#factFINAL assume true; 220691#factEXIT >#66#return; 220693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 220747#factFINAL assume true; 222022#factEXIT >#66#return; 222024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222475#factFINAL assume true; 222391#factEXIT >#66#return; 222392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222460#factFINAL assume true; 222458#factEXIT >#66#return; 222456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222455#factFINAL assume true; 222451#factEXIT >#66#return; 222449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222447#factFINAL assume true; 222445#factEXIT >#66#return; 222444#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222443#factFINAL assume true; 222440#factEXIT >#66#return; 222441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222479#factFINAL assume true; 222387#factEXIT >#72#return; 220777#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 222426#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 222425#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 222424#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 222423#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 222339#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 222374#$Ultimate##0 ~n := #in~n; 222465#L25 assume !(~n <= 0); 222047#L26 call #t~ret0 := fact(~n - 1);< 222246#$Ultimate##0 ~n := #in~n; 222287#L25 assume !(~n <= 0); 222065#L26 call #t~ret0 := fact(~n - 1);< 222288#$Ultimate##0 ~n := #in~n; 222279#L25 assume ~n <= 0;#res := 1; 222278#factFINAL assume true; 222266#factEXIT >#66#return; 222262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222252#factFINAL assume true; 222236#factEXIT >#66#return; 222243#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222490#factFINAL assume true; 222373#factEXIT >#68#return; 222304#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 222320#$Ultimate##0 ~n := #in~n; 222319#L25 assume !(~n <= 0); 222227#L26 call #t~ret0 := fact(~n - 1);< 222290#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222469#factFINAL assume true; 222369#factEXIT >#70#return; 221915#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 222357#$Ultimate##0 ~n := #in~n; 222356#L25 assume !(~n <= 0); 222230#L26 call #t~ret0 := fact(~n - 1);< 222233#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222231#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222466#factFINAL assume true; 222419#factEXIT >#72#return; 221935#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 222416#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 222415#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 222414#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 222412#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 222340#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 222374#$Ultimate##0 ~n := #in~n; 222465#L25 assume !(~n <= 0); 222047#L26 call #t~ret0 := fact(~n - 1);< 222246#$Ultimate##0 ~n := #in~n; 222287#L25 assume !(~n <= 0); 222065#L26 call #t~ret0 := fact(~n - 1);< 222288#$Ultimate##0 ~n := #in~n; 222279#L25 assume ~n <= 0;#res := 1; 222278#factFINAL assume true; 222266#factEXIT >#66#return; 222262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222252#factFINAL assume true; 222236#factEXIT >#66#return; 222243#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222490#factFINAL assume true; 222373#factEXIT >#68#return; 222305#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 222320#$Ultimate##0 ~n := #in~n; 222319#L25 assume !(~n <= 0); 222227#L26 call #t~ret0 := fact(~n - 1);< 222290#$Ultimate##0 ~n := #in~n; 222284#L25 assume !(~n <= 0); 222237#L26 call #t~ret0 := fact(~n - 1);< 222283#$Ultimate##0 ~n := #in~n; 222406#L25 assume !(~n <= 0); 222238#L26 call #t~ret0 := fact(~n - 1);< 222405#$Ultimate##0 ~n := #in~n; 222508#L25 assume !(~n <= 0); 222239#L26 call #t~ret0 := fact(~n - 1);< 222269#$Ultimate##0 ~n := #in~n; 222404#L25 assume !(~n <= 0); 222267#L26 call #t~ret0 := fact(~n - 1);< 222268#$Ultimate##0 ~n := #in~n; 222279#L25 assume ~n <= 0;#res := 1; 222278#factFINAL assume true; 222266#factEXIT >#66#return; 222262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222252#factFINAL assume true; 222236#factEXIT >#66#return; 222242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222459#factFINAL assume true; 222348#factEXIT >#66#return; 222349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222280#factFINAL assume true; 222270#factEXIT >#66#return; 222271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222473#factFINAL assume true; 222359#factEXIT >#66#return; 222363#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222413#factFINAL assume true; 222411#factEXIT >#70#return; 221922#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 221939#$Ultimate##0 ~n := #in~n; 221941#L25 assume ~n <= 0;#res := 1; 221940#factFINAL assume true; 221913#factEXIT >#72#return; 221936#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 222277#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 221909#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 221879#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 221822#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 221165#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 220690#$Ultimate##0 ~n := #in~n; 222259#L25 assume !(~n <= 0); 222048#L26 call #t~ret0 := fact(~n - 1);< 222246#$Ultimate##0 ~n := #in~n; 222287#L25 assume !(~n <= 0); 222065#L26 call #t~ret0 := fact(~n - 1);< 222288#$Ultimate##0 ~n := #in~n; 222287#L25 assume !(~n <= 0); 222065#L26 call #t~ret0 := fact(~n - 1);< 222288#$Ultimate##0 ~n := #in~n; 222279#L25 assume ~n <= 0;#res := 1; 222278#factFINAL assume true; 222266#factEXIT >#66#return; 222262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222252#factFINAL assume true; 222236#factEXIT >#66#return; 222242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222459#factFINAL assume true; 222348#factEXIT >#66#return; 222347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222344#factFINAL assume true; 222342#factEXIT >#74#return; 222208#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 222216#$Ultimate##0 ~n := #in~n; 222291#L25 assume !(~n <= 0); 222229#L26 call #t~ret0 := fact(~n - 1);< 222290#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222215#factFINAL assume true; 222198#factEXIT >#76#return; 222202#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 222221#$Ultimate##0 ~n := #in~n; 222353#L25 assume !(~n <= 0); 222228#L26 call #t~ret0 := fact(~n - 1);< 222245#$Ultimate##0 ~n := #in~n; 222260#L25 assume ~n <= 0;#res := 1; 222250#factFINAL assume true; 222222#factEXIT >#66#return; 222219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222215#factFINAL assume true; 222198#factEXIT >#78#return; 220718#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 220719#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 220784#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 220783#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 220780#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 220782#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 220688#$Ultimate##0 ~n := #in~n; 222176#L25 assume !(~n <= 0); 222014#L26 call #t~ret0 := fact(~n - 1);< 222110#$Ultimate##0 ~n := #in~n; 222106#L25 assume !(~n <= 0); 222015#L26 call #t~ret0 := fact(~n - 1);< 222080#$Ultimate##0 ~n := #in~n; 222106#L25 assume !(~n <= 0); 222015#L26 call #t~ret0 := fact(~n - 1);< 222080#$Ultimate##0 ~n := #in~n; 222171#L25 assume ~n <= 0;#res := 1; 222168#factFINAL assume true; 222161#factEXIT >#66#return; 222159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222154#factFINAL assume true; 222150#factEXIT >#66#return; 222151#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222186#factFINAL assume true; 222155#factEXIT >#66#return; 222152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 222147#factFINAL assume true; 222098#factEXIT >#74#return; 220764#L30-6 [2023-02-17 09:41:51,394 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:51,395 INFO L85 PathProgramCache]: Analyzing trace with hash 1921645145, now seen corresponding path program 15 times [2023-02-17 09:41:51,395 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:51,395 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [488382397] [2023-02-17 09:41:51,395 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:51,395 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:51,405 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:51,406 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1172722944] [2023-02-17 09:41:51,406 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:51,406 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:51,406 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:51,417 INFO L229 MonitoredProcess]: Starting monitored process 179 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:51,431 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (179)] Waiting until timeout for monitored process [2023-02-17 09:41:51,702 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 7 check-sat command(s) [2023-02-17 09:41:51,702 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:51,703 INFO L263 TraceCheckSpWp]: Trace formula consists of 434 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:41:51,705 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:51,751 INFO L134 CoverageAnalysis]: Checked inductivity of 2890 backedges. 782 proven. 209 refuted. 0 times theorem prover too weak. 1899 trivial. 0 not checked. [2023-02-17 09:41:51,751 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:51,865 INFO L134 CoverageAnalysis]: Checked inductivity of 2890 backedges. 186 proven. 261 refuted. 0 times theorem prover too weak. 2443 trivial. 0 not checked. [2023-02-17 09:41:51,866 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:51,866 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [488382397] [2023-02-17 09:41:51,866 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:51,866 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1172722944] [2023-02-17 09:41:51,866 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1172722944] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:51,866 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:51,866 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 15] total 17 [2023-02-17 09:41:51,866 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1431979736] [2023-02-17 09:41:51,866 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:51,867 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:51,867 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:51,867 INFO L85 PathProgramCache]: Analyzing trace with hash 804981481, now seen corresponding path program 9 times [2023-02-17 09:41:51,867 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:51,867 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [764980330] [2023-02-17 09:41:51,867 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:51,867 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:51,875 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:51,875 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1651684978] [2023-02-17 09:41:51,875 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:41:51,875 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:51,876 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:51,882 INFO L229 MonitoredProcess]: Starting monitored process 180 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:51,883 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (180)] Waiting until timeout for monitored process [2023-02-17 09:41:52,152 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2023-02-17 09:41:52,153 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:52,154 INFO L263 TraceCheckSpWp]: Trace formula consists of 190 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:41:52,156 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:52,216 INFO L134 CoverageAnalysis]: Checked inductivity of 6691 backedges. 1292 proven. 123 refuted. 0 times theorem prover too weak. 5276 trivial. 0 not checked. [2023-02-17 09:41:52,216 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:52,388 INFO L134 CoverageAnalysis]: Checked inductivity of 6691 backedges. 1292 proven. 136 refuted. 0 times theorem prover too weak. 5263 trivial. 0 not checked. [2023-02-17 09:41:52,389 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:52,389 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [764980330] [2023-02-17 09:41:52,389 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:52,389 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1651684978] [2023-02-17 09:41:52,389 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1651684978] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:52,390 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:52,390 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 19] total 22 [2023-02-17 09:41:52,390 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1231718169] [2023-02-17 09:41:52,390 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:52,391 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:52,391 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:52,391 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2023-02-17 09:41:52,391 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=48, Invalid=224, Unknown=0, NotChecked=0, Total=272 [2023-02-17 09:41:52,391 INFO L87 Difference]: Start difference. First operand 2124 states and 3675 transitions. cyclomatic complexity: 1576 Second operand has 17 states, 15 states have (on average 3.7333333333333334) internal successors, (56), 17 states have internal predecessors, (56), 9 states have call successors, (25), 2 states have call predecessors, (25), 5 states have return successors, (26), 9 states have call predecessors, (26), 9 states have call successors, (26) [2023-02-17 09:41:52,793 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:52,793 INFO L93 Difference]: Finished difference Result 2489 states and 4875 transitions. [2023-02-17 09:41:52,793 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2489 states and 4875 transitions. [2023-02-17 09:41:52,806 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 221 [2023-02-17 09:41:52,818 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2489 states to 2293 states and 4124 transitions. [2023-02-17 09:41:52,818 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 327 [2023-02-17 09:41:52,818 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 327 [2023-02-17 09:41:52,818 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2293 states and 4124 transitions. [2023-02-17 09:41:52,818 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:52,818 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2293 states and 4124 transitions. [2023-02-17 09:41:52,819 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2293 states and 4124 transitions. [2023-02-17 09:41:52,844 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2293 to 2114. [2023-02-17 09:41:52,846 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2114 states, 1322 states have (on average 1.0468986384266263) internal successors, (1384), 1309 states have internal predecessors, (1384), 469 states have call successors, (501), 323 states have call predecessors, (501), 323 states have return successors, (1766), 481 states have call predecessors, (1766), 469 states have call successors, (1766) [2023-02-17 09:41:52,851 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2114 states to 2114 states and 3651 transitions. [2023-02-17 09:41:52,851 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2114 states and 3651 transitions. [2023-02-17 09:41:52,851 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-17 09:41:52,851 INFO L428 stractBuchiCegarLoop]: Abstraction has 2114 states and 3651 transitions. [2023-02-17 09:41:52,851 INFO L335 stractBuchiCegarLoop]: ======== Iteration 39 ============ [2023-02-17 09:41:52,852 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2114 states and 3651 transitions. [2023-02-17 09:41:52,856 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 182 [2023-02-17 09:41:52,856 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:52,856 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:52,858 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [42, 42, 21, 21, 21, 21, 21, 8, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:52,858 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [83, 83, 68, 68, 68, 68, 15, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1] [2023-02-17 09:41:52,859 INFO L748 eck$LassoCheckResult]: Stem: 228827#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 228771#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 228772#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 228791#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 228783#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 228784#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229107#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 229103#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229104#$Ultimate##0 ~n := #in~n; 229108#L25 assume ~n <= 0;#res := 1; 229106#factFINAL assume true; 229102#factEXIT >#68#return; 229099#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229100#$Ultimate##0 ~n := #in~n; 229105#L25 assume ~n <= 0;#res := 1; 229101#factFINAL assume true; 229098#factEXIT >#70#return; 229091#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 229092#$Ultimate##0 ~n := #in~n; 229096#L25 assume ~n <= 0;#res := 1; 229093#factFINAL assume true; 229090#factEXIT >#72#return; 229088#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 229087#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 229086#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229084#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229082#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 229080#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229081#$Ultimate##0 ~n := #in~n; 229085#L25 assume !(~n <= 0); 229074#L26 call #t~ret0 := fact(~n - 1);< 229077#$Ultimate##0 ~n := #in~n; 229089#L25 assume ~n <= 0;#res := 1; 229083#factFINAL assume true; 229073#factEXIT >#66#return; 229076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229094#factFINAL assume true; 229079#factEXIT >#74#return; 229070#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229071#$Ultimate##0 ~n := #in~n; 229097#L25 assume ~n <= 0;#res := 1; 229078#factFINAL assume true; 229069#factEXIT >#76#return; 229065#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 229066#$Ultimate##0 ~n := #in~n; 229095#L25 assume !(~n <= 0); 229075#L26 call #t~ret0 := fact(~n - 1);< 229077#$Ultimate##0 ~n := #in~n; 229089#L25 assume ~n <= 0;#res := 1; 229083#factFINAL assume true; 229073#factEXIT >#66#return; 229072#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229068#factFINAL assume true; 229064#factEXIT >#78#return; 229062#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 229060#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 229058#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229050#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 229000#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229002#$Ultimate##0 ~n := #in~n; 229048#L25 assume !(~n <= 0); 229045#L26 call #t~ret0 := fact(~n - 1);< 229046#$Ultimate##0 ~n := #in~n; 229057#L25 assume !(~n <= 0); 229044#L26 call #t~ret0 := fact(~n - 1);< 229054#$Ultimate##0 ~n := #in~n; 229067#L25 assume ~n <= 0;#res := 1; 229063#factFINAL assume true; 229061#factEXIT >#66#return; 229059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229056#factFINAL assume true; 229052#factEXIT >#66#return; 229053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229130#factFINAL assume true; 228999#factEXIT >#74#return; 228996#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 228998#$Ultimate##0 ~n := #in~n; 229136#L25 assume ~n <= 0;#res := 1; 229128#factFINAL assume true; 228995#factEXIT >#76#return; 228862#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 228934#$Ultimate##0 ~n := #in~n; 228929#L25 assume !(~n <= 0); 228884#L26 call #t~ret0 := fact(~n - 1);< 228894#$Ultimate##0 ~n := #in~n; 228947#L25 assume !(~n <= 0); 228887#L26 call #t~ret0 := fact(~n - 1);< 228977#$Ultimate##0 ~n := #in~n; 228947#L25 assume !(~n <= 0); 228887#L26 call #t~ret0 := fact(~n - 1);< 228977#$Ultimate##0 ~n := #in~n; 228981#L25 assume ~n <= 0;#res := 1; 228980#factFINAL assume true; 228976#factEXIT >#66#return; 228974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 228973#factFINAL assume true; 228945#factEXIT >#66#return; 228944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 228943#factFINAL assume true; 228933#factEXIT >#66#return; 228890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229174#factFINAL assume true; 228861#factEXIT >#78#return; 228864#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 228792#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 228793#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229926#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 229925#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 228838#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 228839#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 228795#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 228796#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229916#$Ultimate##0 ~n := #in~n; 229924#L25 assume !(~n <= 0); 229921#L26 call #t~ret0 := fact(~n - 1);< 229922#$Ultimate##0 ~n := #in~n; 229927#L25 assume ~n <= 0;#res := 1; 229923#factFINAL assume true; 229920#factEXIT >#66#return; 229919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229918#factFINAL assume true; 229915#factEXIT >#68#return; 229910#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 228817#$Ultimate##0 ~n := #in~n; 229917#L25 assume ~n <= 0;#res := 1; 229914#factFINAL assume true; 229904#factEXIT >#70#return; 228746#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 228747#$Ultimate##0 ~n := #in~n; 229895#L25 assume !(~n <= 0); 228761#L26 call #t~ret0 := fact(~n - 1);< 229894#$Ultimate##0 ~n := #in~n; 229900#L25 assume ~n <= 0;#res := 1; 229898#factFINAL assume true; 229893#factEXIT >#66#return; 229891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229888#factFINAL assume true; 228832#factEXIT >#72#return; 228833#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 229581#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 229579#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229577#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229576#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 229518#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229566#$Ultimate##0 ~n := #in~n; 229573#L25 assume !(~n <= 0); 229358#L26 call #t~ret0 := fact(~n - 1);< 229422#$Ultimate##0 ~n := #in~n; 229377#L25 assume ~n <= 0;#res := 1; 229372#factFINAL assume true; 229357#factEXIT >#66#return; 229369#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229853#factFINAL assume true; 229490#factEXIT >#68#return; 229504#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229523#$Ultimate##0 ~n := #in~n; 229543#L25 assume !(~n <= 0); 229363#L26 call #t~ret0 := fact(~n - 1);< 229535#$Ultimate##0 ~n := #in~n; 229377#L25 assume ~n <= 0;#res := 1; 229372#factFINAL assume true; 229357#factEXIT >#66#return; 229369#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229853#factFINAL assume true; 229490#factEXIT >#70#return; 229451#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 229467#$Ultimate##0 ~n := #in~n; 229479#L25 assume ~n <= 0;#res := 1; 229475#factFINAL assume true; 229449#factEXIT >#72#return; 229465#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 229686#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 229684#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229683#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229682#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 228847#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229379#$Ultimate##0 ~n := #in~n; 229611#L25 assume !(~n <= 0); 229367#L26 call #t~ret0 := fact(~n - 1);< 229422#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229380#factFINAL assume true; 229378#factEXIT >#74#return; 229341#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229355#$Ultimate##0 ~n := #in~n; 229542#L25 assume !(~n <= 0); 229368#L26 call #t~ret0 := fact(~n - 1);< 229535#$Ultimate##0 ~n := #in~n; 229377#L25 assume ~n <= 0;#res := 1; 229372#factFINAL assume true; 229357#factEXIT >#66#return; 229356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229354#factFINAL assume true; 229336#factEXIT >#76#return; 228830#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 228831#$Ultimate##0 ~n := #in~n; 229609#L25 assume !(~n <= 0); 229359#L26 call #t~ret0 := fact(~n - 1);< 229371#$Ultimate##0 ~n := #in~n; 229377#L25 assume ~n <= 0;#res := 1; 229372#factFINAL assume true; 229357#factEXIT >#66#return; 229356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229354#factFINAL assume true; 229336#factEXIT >#78#return; 229351#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 229446#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 229444#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229439#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229431#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 228851#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229383#$Ultimate##0 ~n := #in~n; 229406#L25 assume !(~n <= 0); 229398#L26 call #t~ret0 := fact(~n - 1);< 229404#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229440#factFINAL assume true; 229432#factEXIT >#66#return; 229435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229552#factFINAL assume true; 229547#factEXIT >#74#return; 229340#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229355#$Ultimate##0 ~n := #in~n; 229542#L25 assume !(~n <= 0); 229368#L26 call #t~ret0 := fact(~n - 1);< 229535#$Ultimate##0 ~n := #in~n; 229377#L25 assume ~n <= 0;#res := 1; 229372#factFINAL assume true; 229357#factEXIT >#66#return; 229356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229354#factFINAL assume true; 229336#factEXIT >#76#return; 229349#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 229381#$Ultimate##0 ~n := #in~n; 229801#L25 assume !(~n <= 0); 229360#L26 call #t~ret0 := fact(~n - 1);< 229403#$Ultimate##0 ~n := #in~n; 229488#L25 assume !(~n <= 0); 229481#L26 call #t~ret0 := fact(~n - 1);< 229482#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229380#factFINAL assume true; 229378#factEXIT >#78#return; 228841#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 228840#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 228837#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 228836#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 228834#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 228728#L30-5 [2023-02-17 09:41:52,859 INFO L750 eck$LassoCheckResult]: Loop: 228728#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 228729#$Ultimate##0 ~n := #in~n; 230167#L25 assume !(~n <= 0); 230070#L26 call #t~ret0 := fact(~n - 1);< 230113#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230157#L25 assume ~n <= 0;#res := 1; 230161#factFINAL assume true; 230147#factEXIT >#66#return; 230146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230143#factFINAL assume true; 230134#factEXIT >#66#return; 230130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230127#factFINAL assume true; 230119#factEXIT >#66#return; 230117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230114#factFINAL assume true; 230107#factEXIT >#66#return; 230112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230266#factFINAL assume true; 230264#factEXIT >#66#return; 230262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230261#factFINAL assume true; 230257#factEXIT >#66#return; 230258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230274#factFINAL assume true; 230273#factEXIT >#66#return; 230080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230294#factFINAL assume true; 230067#factEXIT >#66#return; 230064#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230065#factFINAL assume true; 230170#factEXIT >#74#return; 228738#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 230020#$Ultimate##0 ~n := #in~n; 230145#L25 assume !(~n <= 0); 230074#L26 call #t~ret0 := fact(~n - 1);< 230144#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230157#L25 assume ~n <= 0;#res := 1; 230161#factFINAL assume true; 230147#factEXIT >#66#return; 230146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230143#factFINAL assume true; 230134#factEXIT >#66#return; 230130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230127#factFINAL assume true; 230119#factEXIT >#66#return; 230117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230114#factFINAL assume true; 230107#factEXIT >#66#return; 230112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230266#factFINAL assume true; 230264#factEXIT >#66#return; 230262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230261#factFINAL assume true; 230257#factEXIT >#66#return; 230258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230274#factFINAL assume true; 230273#factEXIT >#66#return; 230272#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230018#factFINAL assume true; 230019#factEXIT >#76#return; 228737#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 230020#$Ultimate##0 ~n := #in~n; 230145#L25 assume !(~n <= 0); 230074#L26 call #t~ret0 := fact(~n - 1);< 230144#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230160#L25 assume !(~n <= 0); 230073#L26 call #t~ret0 := fact(~n - 1);< 230148#$Ultimate##0 ~n := #in~n; 230157#L25 assume ~n <= 0;#res := 1; 230161#factFINAL assume true; 230147#factEXIT >#66#return; 230146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230143#factFINAL assume true; 230134#factEXIT >#66#return; 230130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230127#factFINAL assume true; 230119#factEXIT >#66#return; 230117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230114#factFINAL assume true; 230107#factEXIT >#66#return; 230112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230266#factFINAL assume true; 230264#factEXIT >#66#return; 230262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230261#factFINAL assume true; 230257#factEXIT >#66#return; 230258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230274#factFINAL assume true; 230273#factEXIT >#66#return; 230272#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230018#factFINAL assume true; 230019#factEXIT >#78#return; 228773#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 228774#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 228825#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 228826#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 228789#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 228790#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 228808#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 228809#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 228750#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 228751#$Ultimate##0 ~n := #in~n; 229983#L25 assume !(~n <= 0); 229979#L26 call #t~ret0 := fact(~n - 1);< 229982#$Ultimate##0 ~n := #in~n; 229928#L25 assume !(~n <= 0); 229980#L26 call #t~ret0 := fact(~n - 1);< 229986#$Ultimate##0 ~n := #in~n; 229928#L25 assume !(~n <= 0); 229980#L26 call #t~ret0 := fact(~n - 1);< 229986#$Ultimate##0 ~n := #in~n; 229928#L25 assume !(~n <= 0); 229980#L26 call #t~ret0 := fact(~n - 1);< 229986#$Ultimate##0 ~n := #in~n; 229928#L25 assume !(~n <= 0); 229980#L26 call #t~ret0 := fact(~n - 1);< 229986#$Ultimate##0 ~n := #in~n; 229928#L25 assume !(~n <= 0); 229980#L26 call #t~ret0 := fact(~n - 1);< 229986#$Ultimate##0 ~n := #in~n; 229928#L25 assume !(~n <= 0); 229980#L26 call #t~ret0 := fact(~n - 1);< 229986#$Ultimate##0 ~n := #in~n; 229928#L25 assume !(~n <= 0); 229980#L26 call #t~ret0 := fact(~n - 1);< 229986#$Ultimate##0 ~n := #in~n; 229987#L25 assume ~n <= 0;#res := 1; 230006#factFINAL assume true; 230005#factEXIT >#66#return; 230004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230003#factFINAL assume true; 230001#factEXIT >#66#return; 230000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229999#factFINAL assume true; 229998#factEXIT >#66#return; 229997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229996#factFINAL assume true; 229994#factEXIT >#66#return; 229993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229992#factFINAL assume true; 229990#factEXIT >#66#return; 229988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229989#factFINAL assume true; 230313#factEXIT >#66#return; 230314#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230339#factFINAL assume true; 229978#factEXIT >#66#return; 229981#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229984#factFINAL assume true; 229985#factEXIT >#66#return; 230308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230307#factFINAL assume true; 230306#factEXIT >#68#return; 229907#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229916#$Ultimate##0 ~n := #in~n; 229924#L25 assume ~n <= 0;#res := 1; 229914#factFINAL assume true; 229904#factEXIT >#70#return; 228812#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 230301#$Ultimate##0 ~n := #in~n; 228811#L25 assume !(~n <= 0); 228768#L26 call #t~ret0 := fact(~n - 1);< 228820#$Ultimate##0 ~n := #in~n; 228821#L25 assume !(~n <= 0); 228759#L26 call #t~ret0 := fact(~n - 1);< 230297#$Ultimate##0 ~n := #in~n; 230293#L25 assume !(~n <= 0); 228757#L26 call #t~ret0 := fact(~n - 1);< 230291#$Ultimate##0 ~n := #in~n; 230289#L25 assume !(~n <= 0); 228767#L26 call #t~ret0 := fact(~n - 1);< 230282#$Ultimate##0 ~n := #in~n; 230305#L25 assume !(~n <= 0); 228762#L26 call #t~ret0 := fact(~n - 1);< 230287#$Ultimate##0 ~n := #in~n; 230285#L25 assume !(~n <= 0); 228760#L26 call #t~ret0 := fact(~n - 1);< 230208#$Ultimate##0 ~n := #in~n; 230202#L25 assume !(~n <= 0); 228755#L26 call #t~ret0 := fact(~n - 1);< 230180#$Ultimate##0 ~n := #in~n; 229902#L25 assume !(~n <= 0); 228764#L26 call #t~ret0 := fact(~n - 1);< 230179#$Ultimate##0 ~n := #in~n; 230213#L25 assume ~n <= 0;#res := 1; 230212#factFINAL assume true; 230211#factEXIT >#66#return; 230207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230201#factFINAL assume true; 230193#factEXIT >#66#return; 230194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230343#factFINAL assume true; 230259#factEXIT >#66#return; 230260#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230288#factFINAL assume true; 230286#factEXIT >#66#return; 230283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230281#factFINAL assume true; 230277#factEXIT >#66#return; 230278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230338#factFINAL assume true; 230336#factEXIT >#66#return; 230335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230334#factFINAL assume true; 230325#factEXIT >#66#return; 228801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 228754#factFINAL assume true; 228769#factEXIT >#66#return; 230041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 230042#factFINAL assume true; 230320#factEXIT >#72#return; 228785#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 228786#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 229619#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229618#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229617#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 229538#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229550#$Ultimate##0 ~n := #in~n; 229569#L25 assume !(~n <= 0); 229393#L26 call #t~ret0 := fact(~n - 1);< 229404#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229440#factFINAL assume true; 229432#factEXIT >#66#return; 229429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229423#factFINAL assume true; 229407#factEXIT >#66#return; 229420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229567#factFINAL assume true; 229554#factEXIT >#66#return; 229559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229601#factFINAL assume true; 229594#factEXIT >#66#return; 229597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229851#factFINAL assume true; 229847#factEXIT >#66#return; 229840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229841#factFINAL assume true; 229835#factEXIT >#66#return; 229834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229833#factFINAL assume true; 229832#factEXIT >#68#return; 229507#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229566#$Ultimate##0 ~n := #in~n; 229573#L25 assume !(~n <= 0); 229358#L26 call #t~ret0 := fact(~n - 1);< 229422#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229440#factFINAL assume true; 229432#factEXIT >#66#return; 229429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229423#factFINAL assume true; 229407#factEXIT >#66#return; 229420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229567#factFINAL assume true; 229554#factEXIT >#66#return; 229559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229601#factFINAL assume true; 229594#factEXIT >#66#return; 229597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229851#factFINAL assume true; 229847#factEXIT >#66#return; 229840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229841#factFINAL assume true; 229835#factEXIT >#66#return; 229834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229833#factFINAL assume true; 229832#factEXIT >#70#return; 229425#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 229575#$Ultimate##0 ~n := #in~n; 229889#L25 assume !(~n <= 0); 229365#L26 call #t~ret0 := fact(~n - 1);< 229422#$Ultimate##0 ~n := #in~n; 229377#L25 assume ~n <= 0;#res := 1; 229372#factFINAL assume true; 229357#factEXIT >#66#return; 229370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229607#factFINAL assume true; 229574#factEXIT >#72#return; 229466#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 229591#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 229590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229584#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229551#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 229539#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229550#$Ultimate##0 ~n := #in~n; 229569#L25 assume !(~n <= 0); 229393#L26 call #t~ret0 := fact(~n - 1);< 229404#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229440#factFINAL assume true; 229432#factEXIT >#66#return; 229429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229423#factFINAL assume true; 229407#factEXIT >#66#return; 229420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229567#factFINAL assume true; 229554#factEXIT >#66#return; 229560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229565#factFINAL assume true; 229549#factEXIT >#68#return; 229508#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229523#$Ultimate##0 ~n := #in~n; 229543#L25 assume !(~n <= 0); 229363#L26 call #t~ret0 := fact(~n - 1);< 229535#$Ultimate##0 ~n := #in~n; 229530#L25 assume !(~n <= 0); 229391#L26 call #t~ret0 := fact(~n - 1);< 229525#$Ultimate##0 ~n := #in~n; 229489#L25 assume !(~n <= 0); 229392#L26 call #t~ret0 := fact(~n - 1);< 229484#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229440#factFINAL assume true; 229432#factEXIT >#66#return; 229433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229843#factFINAL assume true; 229537#factEXIT >#70#return; 229453#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 229536#$Ultimate##0 ~n := #in~n; 229533#L25 assume ~n <= 0;#res := 1; 229475#factFINAL assume true; 229449#factEXIT >#72#return; 229448#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 229445#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 229443#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 229438#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 229430#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 228850#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 229383#$Ultimate##0 ~n := #in~n; 229406#L25 assume !(~n <= 0); 229398#L26 call #t~ret0 := fact(~n - 1);< 229404#$Ultimate##0 ~n := #in~n; 229532#L25 assume !(~n <= 0); 229396#L26 call #t~ret0 := fact(~n - 1);< 229483#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229380#factFINAL assume true; 229378#factEXIT >#74#return; 229343#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 229355#$Ultimate##0 ~n := #in~n; 229542#L25 assume !(~n <= 0); 229368#L26 call #t~ret0 := fact(~n - 1);< 229535#$Ultimate##0 ~n := #in~n; 229530#L25 assume !(~n <= 0); 229391#L26 call #t~ret0 := fact(~n - 1);< 229525#$Ultimate##0 ~n := #in~n; 229487#L25 assume ~n <= 0;#res := 1; 229486#factFINAL assume true; 229480#factEXIT >#66#return; 229478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229471#factFINAL assume true; 229389#factEXIT >#66#return; 229384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229380#factFINAL assume true; 229378#factEXIT >#76#return; 229344#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 228831#$Ultimate##0 ~n := #in~n; 229609#L25 assume !(~n <= 0); 229359#L26 call #t~ret0 := fact(~n - 1);< 229371#$Ultimate##0 ~n := #in~n; 229377#L25 assume ~n <= 0;#res := 1; 229372#factFINAL assume true; 229357#factEXIT >#66#return; 229356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 229354#factFINAL assume true; 229336#factEXIT >#78#return; 228841#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 228840#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 228837#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 228836#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 228834#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 228728#L30-5 [2023-02-17 09:41:52,859 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:52,859 INFO L85 PathProgramCache]: Analyzing trace with hash 1200399443, now seen corresponding path program 16 times [2023-02-17 09:41:52,859 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:52,860 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1906484199] [2023-02-17 09:41:52,860 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:52,860 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:52,870 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:52,870 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1422609809] [2023-02-17 09:41:52,870 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:52,870 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:52,870 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:52,872 INFO L229 MonitoredProcess]: Starting monitored process 181 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:52,873 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (181)] Waiting until timeout for monitored process [2023-02-17 09:41:53,174 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:53,175 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:53,177 INFO L263 TraceCheckSpWp]: Trace formula consists of 640 conjuncts, 15 conjunts are in the unsatisfiable core [2023-02-17 09:41:53,179 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:53,207 INFO L134 CoverageAnalysis]: Checked inductivity of 3995 backedges. 2079 proven. 15 refuted. 0 times theorem prover too weak. 1901 trivial. 0 not checked. [2023-02-17 09:41:53,207 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:53,319 INFO L134 CoverageAnalysis]: Checked inductivity of 3995 backedges. 219 proven. 337 refuted. 0 times theorem prover too weak. 3439 trivial. 0 not checked. [2023-02-17 09:41:53,319 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:53,319 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1906484199] [2023-02-17 09:41:53,319 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:53,320 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1422609809] [2023-02-17 09:41:53,320 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1422609809] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:53,320 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:53,320 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 18 [2023-02-17 09:41:53,320 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1479610468] [2023-02-17 09:41:53,320 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:53,320 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:53,321 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:53,321 INFO L85 PathProgramCache]: Analyzing trace with hash -739147173, now seen corresponding path program 10 times [2023-02-17 09:41:53,321 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:53,321 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1433118275] [2023-02-17 09:41:53,321 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:53,321 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:53,336 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:53,337 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [988034739] [2023-02-17 09:41:53,337 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:41:53,337 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:53,337 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:53,341 INFO L229 MonitoredProcess]: Starting monitored process 182 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:53,343 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (182)] Waiting until timeout for monitored process [2023-02-17 09:41:53,689 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:41:53,689 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:53,693 INFO L263 TraceCheckSpWp]: Trace formula consists of 1079 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-17 09:41:53,696 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:53,813 INFO L134 CoverageAnalysis]: Checked inductivity of 18223 backedges. 7950 proven. 1028 refuted. 0 times theorem prover too weak. 9245 trivial. 0 not checked. [2023-02-17 09:41:53,813 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:54,361 INFO L134 CoverageAnalysis]: Checked inductivity of 18223 backedges. 126 proven. 5842 refuted. 0 times theorem prover too weak. 12255 trivial. 0 not checked. [2023-02-17 09:41:54,361 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:54,362 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1433118275] [2023-02-17 09:41:54,362 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:54,362 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [988034739] [2023-02-17 09:41:54,362 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [988034739] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:54,362 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:54,362 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 36] total 39 [2023-02-17 09:41:54,362 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [494987445] [2023-02-17 09:41:54,362 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:54,363 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:54,363 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:54,364 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2023-02-17 09:41:54,364 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=245, Unknown=0, NotChecked=0, Total=306 [2023-02-17 09:41:54,364 INFO L87 Difference]: Start difference. First operand 2114 states and 3651 transitions. cyclomatic complexity: 1562 Second operand has 18 states, 16 states have (on average 4.125) internal successors, (66), 18 states have internal predecessors, (66), 12 states have call successors, (36), 2 states have call predecessors, (36), 5 states have return successors, (37), 11 states have call predecessors, (37), 12 states have call successors, (37) [2023-02-17 09:41:54,846 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:54,846 INFO L93 Difference]: Finished difference Result 2249 states and 4230 transitions. [2023-02-17 09:41:54,846 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2249 states and 4230 transitions. [2023-02-17 09:41:54,858 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 297 [2023-02-17 09:41:54,869 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2249 states to 2228 states and 4159 transitions. [2023-02-17 09:41:54,870 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 308 [2023-02-17 09:41:54,870 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 308 [2023-02-17 09:41:54,870 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2228 states and 4159 transitions. [2023-02-17 09:41:54,870 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:54,870 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2228 states and 4159 transitions. [2023-02-17 09:41:54,871 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2228 states and 4159 transitions. [2023-02-17 09:41:54,895 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2228 to 2125. [2023-02-17 09:41:54,896 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2125 states, 1327 states have (on average 1.0459683496608891) internal successors, (1388), 1313 states have internal predecessors, (1388), 475 states have call successors, (507), 323 states have call predecessors, (507), 323 states have return successors, (1787), 488 states have call predecessors, (1787), 475 states have call successors, (1787) [2023-02-17 09:41:54,902 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2125 states to 2125 states and 3682 transitions. [2023-02-17 09:41:54,902 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2125 states and 3682 transitions. [2023-02-17 09:41:54,902 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2023-02-17 09:41:54,903 INFO L428 stractBuchiCegarLoop]: Abstraction has 2125 states and 3682 transitions. [2023-02-17 09:41:54,903 INFO L335 stractBuchiCegarLoop]: ======== Iteration 40 ============ [2023-02-17 09:41:54,903 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2125 states and 3682 transitions. [2023-02-17 09:41:54,907 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 194 [2023-02-17 09:41:54,908 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:54,908 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:54,910 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [49, 49, 25, 25, 25, 25, 24, 9, 8, 6, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:54,910 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [87, 87, 69, 69, 69, 69, 18, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:41:54,910 INFO L748 eck$LassoCheckResult]: Stem: 237985#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 237942#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 237943#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 237960#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 237952#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 237953#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238635#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238631#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238632#$Ultimate##0 ~n := #in~n; 238636#L25 assume ~n <= 0;#res := 1; 238634#factFINAL assume true; 238630#factEXIT >#68#return; 238626#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238627#$Ultimate##0 ~n := #in~n; 238633#L25 assume ~n <= 0;#res := 1; 238629#factFINAL assume true; 238625#factEXIT >#70#return; 238622#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238623#$Ultimate##0 ~n := #in~n; 238628#L25 assume ~n <= 0;#res := 1; 238624#factFINAL assume true; 238621#factEXIT >#72#return; 238620#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 238619#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 238615#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238612#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238609#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238604#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238605#$Ultimate##0 ~n := #in~n; 238618#L25 assume !(~n <= 0); 238393#L26 call #t~ret0 := fact(~n - 1);< 238391#$Ultimate##0 ~n := #in~n; 238402#L25 assume ~n <= 0;#res := 1; 238392#factFINAL assume true; 238394#factEXIT >#66#return; 238611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238608#factFINAL assume true; 238603#factEXIT >#74#return; 238600#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238601#$Ultimate##0 ~n := #in~n; 238639#L25 assume ~n <= 0;#res := 1; 238638#factFINAL assume true; 238599#factEXIT >#76#return; 238371#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238597#$Ultimate##0 ~n := #in~n; 238703#L25 assume !(~n <= 0); 238390#L26 call #t~ret0 := fact(~n - 1);< 238391#$Ultimate##0 ~n := #in~n; 238402#L25 assume ~n <= 0;#res := 1; 238392#factFINAL assume true; 238394#factEXIT >#66#return; 238614#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238370#factFINAL assume true; 238372#factEXIT >#78#return; 238596#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 238595#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 238593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238592#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238589#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238359#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238536#$Ultimate##0 ~n := #in~n; 238640#L25 assume !(~n <= 0); 238563#L26 call #t~ret0 := fact(~n - 1);< 238576#$Ultimate##0 ~n := #in~n; 238583#L25 assume !(~n <= 0); 238565#L26 call #t~ret0 := fact(~n - 1);< 238582#$Ultimate##0 ~n := #in~n; 238587#L25 assume ~n <= 0;#res := 1; 238584#factFINAL assume true; 238581#factEXIT >#66#return; 238580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238578#factFINAL assume true; 238574#factEXIT >#66#return; 238573#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238561#factFINAL assume true; 238558#factEXIT >#74#return; 238543#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238546#$Ultimate##0 ~n := #in~n; 238579#L25 assume ~n <= 0;#res := 1; 238556#factFINAL assume true; 238542#factEXIT >#76#return; 238539#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238540#$Ultimate##0 ~n := #in~n; 238577#L25 assume !(~n <= 0); 238567#L26 call #t~ret0 := fact(~n - 1);< 238576#$Ultimate##0 ~n := #in~n; 238583#L25 assume !(~n <= 0); 238565#L26 call #t~ret0 := fact(~n - 1);< 238582#$Ultimate##0 ~n := #in~n; 238587#L25 assume ~n <= 0;#res := 1; 238584#factFINAL assume true; 238581#factEXIT >#66#return; 238580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238578#factFINAL assume true; 238574#factEXIT >#66#return; 238555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238541#factFINAL assume true; 238537#factEXIT >#78#return; 238252#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 238253#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 238248#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238249#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238140#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238138#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238139#$Ultimate##0 ~n := #in~n; 238151#L25 assume !(~n <= 0); 238148#L26 call #t~ret0 := fact(~n - 1);< 238150#$Ultimate##0 ~n := #in~n; 238154#L25 assume !(~n <= 0); 238147#L26 call #t~ret0 := fact(~n - 1);< 238153#$Ultimate##0 ~n := #in~n; 238159#L25 assume ~n <= 0;#res := 1; 238157#factFINAL assume true; 238156#factEXIT >#66#return; 238155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238152#factFINAL assume true; 238146#factEXIT >#66#return; 238145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238143#factFINAL assume true; 238137#factEXIT >#74#return; 238136#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238129#$Ultimate##0 ~n := #in~n; 238214#L25 assume ~n <= 0;#res := 1; 238213#factFINAL assume true; 238135#factEXIT >#76#return; 238009#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238133#$Ultimate##0 ~n := #in~n; 238131#L25 assume !(~n <= 0); 238035#L26 call #t~ret0 := fact(~n - 1);< 238083#$Ultimate##0 ~n := #in~n; 238113#L25 assume !(~n <= 0); 238038#L26 call #t~ret0 := fact(~n - 1);< 238112#$Ultimate##0 ~n := #in~n; 238113#L25 assume !(~n <= 0); 238038#L26 call #t~ret0 := fact(~n - 1);< 238112#$Ultimate##0 ~n := #in~n; 238144#L25 assume ~n <= 0;#res := 1; 238142#factFINAL assume true; 238111#factEXIT >#66#return; 238110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238109#factFINAL assume true; 238108#factEXIT >#66#return; 238107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238105#factFINAL assume true; 238088#factEXIT >#66#return; 238043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238294#factFINAL assume true; 238008#factEXIT >#78#return; 238011#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 238974#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 238973#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238972#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 238971#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 238970#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 238969#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238968#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238959#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238967#$Ultimate##0 ~n := #in~n; 238982#L25 assume !(~n <= 0); 238980#L26 call #t~ret0 := fact(~n - 1);< 238981#$Ultimate##0 ~n := #in~n; 238984#L25 assume ~n <= 0;#res := 1; 238983#factFINAL assume true; 238979#factEXIT >#66#return; 238977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238975#factFINAL assume true; 238966#factEXIT >#68#return; 238962#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 237975#$Ultimate##0 ~n := #in~n; 238978#L25 assume ~n <= 0;#res := 1; 238976#factFINAL assume true; 238956#factEXIT >#70#return; 238954#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238955#$Ultimate##0 ~n := #in~n; 238990#L25 assume !(~n <= 0); 237904#L26 call #t~ret0 := fact(~n - 1);< 238989#$Ultimate##0 ~n := #in~n; 238992#L25 assume ~n <= 0;#res := 1; 238991#factFINAL assume true; 238988#factEXIT >#66#return; 238987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238986#factFINAL assume true; 238953#factEXIT >#72#return; 238952#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 238951#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 238949#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238948#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238947#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238858#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238945#$Ultimate##0 ~n := #in~n; 238944#L25 assume !(~n <= 0); 238387#L26 call #t~ret0 := fact(~n - 1);< 238830#$Ultimate##0 ~n := #in~n; 238400#L25 assume ~n <= 0;#res := 1; 238401#factFINAL assume true; 238376#factEXIT >#66#return; 238388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239027#factFINAL assume true; 238846#factEXIT >#68#return; 238793#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238863#$Ultimate##0 ~n := #in~n; 239006#L25 assume !(~n <= 0); 238378#L26 call #t~ret0 := fact(~n - 1);< 238786#$Ultimate##0 ~n := #in~n; 238400#L25 assume ~n <= 0;#res := 1; 238401#factFINAL assume true; 238376#factEXIT >#66#return; 238388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239027#factFINAL assume true; 238846#factEXIT >#70#return; 238759#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 239024#$Ultimate##0 ~n := #in~n; 238768#L25 assume ~n <= 0;#res := 1; 238766#factFINAL assume true; 238746#factEXIT >#72#return; 238763#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 239002#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 239001#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 239000#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238999#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238279#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238706#$Ultimate##0 ~n := #in~n; 238832#L25 assume !(~n <= 0); 238377#L26 call #t~ret0 := fact(~n - 1);< 238830#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238705#factFINAL assume true; 238704#factEXIT >#74#return; 238284#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238373#$Ultimate##0 ~n := #in~n; 238835#L25 assume !(~n <= 0); 238379#L26 call #t~ret0 := fact(~n - 1);< 238786#$Ultimate##0 ~n := #in~n; 238400#L25 assume ~n <= 0;#res := 1; 238401#factFINAL assume true; 238376#factEXIT >#66#return; 238374#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238375#factFINAL assume true; 238366#factEXIT >#76#return; 237988#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 237989#$Ultimate##0 ~n := #in~n; 238936#L25 assume !(~n <= 0); 238380#L26 call #t~ret0 := fact(~n - 1);< 238399#$Ultimate##0 ~n := #in~n; 238400#L25 assume ~n <= 0;#res := 1; 238401#factFINAL assume true; 238376#factEXIT >#66#return; 238374#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238375#factFINAL assume true; 238366#factEXIT >#78#return; 238369#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 237962#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 237963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238816#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238810#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238269#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238709#$Ultimate##0 ~n := #in~n; 238741#L25 assume !(~n <= 0); 238716#L26 call #t~ret0 := fact(~n - 1);< 238728#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239004#factFINAL assume true; 238254#factEXIT >#74#return; 238260#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238373#$Ultimate##0 ~n := #in~n; 238835#L25 assume !(~n <= 0); 238379#L26 call #t~ret0 := fact(~n - 1);< 238786#$Ultimate##0 ~n := #in~n; 238400#L25 assume ~n <= 0;#res := 1; 238401#factFINAL assume true; 238376#factEXIT >#66#return; 238374#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238375#factFINAL assume true; 238366#factEXIT >#76#return; 238367#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238707#$Ultimate##0 ~n := #in~n; 239003#L25 assume !(~n <= 0); 238382#L26 call #t~ret0 := fact(~n - 1);< 238727#$Ultimate##0 ~n := #in~n; 238817#L25 assume !(~n <= 0); 238812#L26 call #t~ret0 := fact(~n - 1);< 238814#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238705#factFINAL assume true; 238704#factEXIT >#78#return; 237996#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 237995#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 237994#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 237993#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 237990#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 237894#L30-5 [2023-02-17 09:41:54,911 INFO L750 eck$LassoCheckResult]: Loop: 237894#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 237895#$Ultimate##0 ~n := #in~n; 238515#L25 assume !(~n <= 0); 238430#L26 call #t~ret0 := fact(~n - 1);< 238486#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238514#L25 assume ~n <= 0;#res := 1; 238516#factFINAL assume true; 238509#factEXIT >#66#return; 238508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238460#factFINAL assume true; 238444#factEXIT >#66#return; 238448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238517#factFINAL assume true; 238506#factEXIT >#66#return; 238442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238437#factFINAL assume true; 238425#factEXIT >#66#return; 238435#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238491#factFINAL assume true; 238487#factEXIT >#66#return; 238484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238478#factFINAL assume true; 238475#factEXIT >#66#return; 238472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238471#factFINAL assume true; 238469#factEXIT >#66#return; 238468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238467#factFINAL assume true; 238410#factEXIT >#74#return; 238000#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238406#$Ultimate##0 ~n := #in~n; 238499#L25 assume !(~n <= 0); 238415#L26 call #t~ret0 := fact(~n - 1);< 238456#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238514#L25 assume ~n <= 0;#res := 1; 238516#factFINAL assume true; 238509#factEXIT >#66#return; 238508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238460#factFINAL assume true; 238444#factEXIT >#66#return; 238448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238517#factFINAL assume true; 238506#factEXIT >#66#return; 238442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238437#factFINAL assume true; 238425#factEXIT >#66#return; 238423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238421#factFINAL assume true; 238403#factEXIT >#76#return; 238001#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238406#$Ultimate##0 ~n := #in~n; 238499#L25 assume !(~n <= 0); 238415#L26 call #t~ret0 := fact(~n - 1);< 238456#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238485#L25 assume !(~n <= 0); 238433#L26 call #t~ret0 := fact(~n - 1);< 238513#$Ultimate##0 ~n := #in~n; 238514#L25 assume ~n <= 0;#res := 1; 238516#factFINAL assume true; 238509#factEXIT >#66#return; 238508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238460#factFINAL assume true; 238444#factEXIT >#66#return; 238448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238517#factFINAL assume true; 238506#factEXIT >#66#return; 238442#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238437#factFINAL assume true; 238425#factEXIT >#66#return; 238423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238421#factFINAL assume true; 238403#factEXIT >#78#return; 237944#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 237945#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 237961#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 237984#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 237958#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 237959#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 237972#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 237964#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 237930#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 237931#$Ultimate##0 ~n := #in~n; 239236#L25 assume !(~n <= 0); 239232#L26 call #t~ret0 := fact(~n - 1);< 239235#$Ultimate##0 ~n := #in~n; 238985#L25 assume !(~n <= 0); 239231#L26 call #t~ret0 := fact(~n - 1);< 239267#$Ultimate##0 ~n := #in~n; 238985#L25 assume !(~n <= 0); 239231#L26 call #t~ret0 := fact(~n - 1);< 239267#$Ultimate##0 ~n := #in~n; 239268#L25 assume ~n <= 0;#res := 1; 239314#factFINAL assume true; 239313#factEXIT >#66#return; 239312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239295#factFINAL assume true; 239230#factEXIT >#66#return; 239234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239279#factFINAL assume true; 239278#factEXIT >#66#return; 239223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239222#factFINAL assume true; 239221#factEXIT >#68#return; 238958#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 237975#$Ultimate##0 ~n := #in~n; 238978#L25 assume ~n <= 0;#res := 1; 238976#factFINAL assume true; 238956#factEXIT >#70#return; 237939#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 239895#$Ultimate##0 ~n := #in~n; 239893#L25 assume !(~n <= 0); 237908#L26 call #t~ret0 := fact(~n - 1);< 239889#$Ultimate##0 ~n := #in~n; 239887#L25 assume !(~n <= 0); 237912#L26 call #t~ret0 := fact(~n - 1);< 239884#$Ultimate##0 ~n := #in~n; 238993#L25 assume !(~n <= 0); 237906#L26 call #t~ret0 := fact(~n - 1);< 239861#$Ultimate##0 ~n := #in~n; 238993#L25 assume !(~n <= 0); 237906#L26 call #t~ret0 := fact(~n - 1);< 239861#$Ultimate##0 ~n := #in~n; 238993#L25 assume !(~n <= 0); 237906#L26 call #t~ret0 := fact(~n - 1);< 239861#$Ultimate##0 ~n := #in~n; 237969#L25 assume ~n <= 0;#res := 1; 237970#factFINAL assume true; 239943#factEXIT >#66#return; 239942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239940#factFINAL assume true; 239937#factEXIT >#66#return; 239936#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239934#factFINAL assume true; 239913#factEXIT >#66#return; 239914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239928#factFINAL assume true; 239925#factEXIT >#66#return; 239923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239922#factFINAL assume true; 239917#factEXIT >#66#return; 239916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239915#factFINAL assume true; 239907#factEXIT >#72#return; 237954#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 237955#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 239034#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 239033#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 239032#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238925#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238929#$Ultimate##0 ~n := #in~n; 238946#L25 assume !(~n <= 0); 238717#L26 call #t~ret0 := fact(~n - 1);< 238728#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238788#factFINAL assume true; 238774#factEXIT >#66#return; 238782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238911#factFINAL assume true; 238904#factEXIT >#66#return; 238903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238898#factFINAL assume true; 238890#factEXIT >#66#return; 238893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239035#factFINAL assume true; 239031#factEXIT >#68#return; 238850#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238945#$Ultimate##0 ~n := #in~n; 238944#L25 assume !(~n <= 0); 238387#L26 call #t~ret0 := fact(~n - 1);< 238830#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238788#factFINAL assume true; 238774#factEXIT >#66#return; 238782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238911#factFINAL assume true; 238904#factEXIT >#66#return; 238906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238938#factFINAL assume true; 238928#factEXIT >#70#return; 238756#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238764#$Ultimate##0 ~n := #in~n; 239020#L25 assume !(~n <= 0); 238384#L26 call #t~ret0 := fact(~n - 1);< 238830#$Ultimate##0 ~n := #in~n; 238400#L25 assume ~n <= 0;#res := 1; 238401#factFINAL assume true; 238376#factEXIT >#66#return; 238389#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239030#factFINAL assume true; 239028#factEXIT >#72#return; 238761#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 238998#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 238996#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238995#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238994#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238926#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238929#$Ultimate##0 ~n := #in~n; 238946#L25 assume !(~n <= 0); 238717#L26 call #t~ret0 := fact(~n - 1);< 238728#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238788#factFINAL assume true; 238774#factEXIT >#66#return; 238782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238911#factFINAL assume true; 238904#factEXIT >#66#return; 238903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238898#factFINAL assume true; 238890#factEXIT >#66#return; 238891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238912#factFINAL assume true; 238873#factEXIT >#66#return; 238884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239016#factFINAL assume true; 239011#factEXIT >#66#return; 239013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239043#factFINAL assume true; 239044#factEXIT >#68#return; 238855#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238945#$Ultimate##0 ~n := #in~n; 238944#L25 assume !(~n <= 0); 238387#L26 call #t~ret0 := fact(~n - 1);< 238830#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238788#factFINAL assume true; 238774#factEXIT >#66#return; 238782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238911#factFINAL assume true; 238904#factEXIT >#66#return; 238906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238938#factFINAL assume true; 238928#factEXIT >#70#return; 238752#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238764#$Ultimate##0 ~n := #in~n; 239020#L25 assume ~n <= 0;#res := 1; 238766#factFINAL assume true; 238746#factEXIT >#72#return; 238762#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 238769#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 238767#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238765#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238745#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238267#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238709#$Ultimate##0 ~n := #in~n; 238741#L25 assume !(~n <= 0); 238716#L26 call #t~ret0 := fact(~n - 1);< 238728#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 239004#factFINAL assume true; 238254#factEXIT >#74#return; 238266#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238373#$Ultimate##0 ~n := #in~n; 238835#L25 assume !(~n <= 0); 238379#L26 call #t~ret0 := fact(~n - 1);< 238786#$Ultimate##0 ~n := #in~n; 238829#L25 assume !(~n <= 0); 238718#L26 call #t~ret0 := fact(~n - 1);< 238822#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238705#factFINAL assume true; 238704#factEXIT >#76#return; 238368#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238707#$Ultimate##0 ~n := #in~n; 239003#L25 assume !(~n <= 0); 238382#L26 call #t~ret0 := fact(~n - 1);< 238727#$Ultimate##0 ~n := #in~n; 238400#L25 assume ~n <= 0;#res := 1; 238401#factFINAL assume true; 238376#factEXIT >#66#return; 238374#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238375#factFINAL assume true; 238366#factEXIT >#78#return; 237946#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 237947#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 238772#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 238771#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 238770#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 238276#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 238709#$Ultimate##0 ~n := #in~n; 238741#L25 assume !(~n <= 0); 238716#L26 call #t~ret0 := fact(~n - 1);< 238728#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238788#factFINAL assume true; 238774#factEXIT >#66#return; 238782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238911#factFINAL assume true; 238904#factEXIT >#66#return; 238903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238898#factFINAL assume true; 238890#factEXIT >#66#return; 238891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238912#factFINAL assume true; 238873#factEXIT >#66#return; 238872#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238869#factFINAL assume true; 238868#factEXIT >#74#return; 238275#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 238706#$Ultimate##0 ~n := #in~n; 238832#L25 assume !(~n <= 0); 238377#L26 call #t~ret0 := fact(~n - 1);< 238830#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238913#factFINAL assume true; 238837#factEXIT >#66#return; 238808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238788#factFINAL assume true; 238774#factEXIT >#66#return; 238782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238911#factFINAL assume true; 238904#factEXIT >#66#return; 238903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238898#factFINAL assume true; 238890#factEXIT >#66#return; 238889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238870#factFINAL assume true; 238865#factEXIT >#76#return; 238283#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 238706#$Ultimate##0 ~n := #in~n; 238832#L25 assume !(~n <= 0); 238377#L26 call #t~ret0 := fact(~n - 1);< 238830#$Ultimate##0 ~n := #in~n; 238828#L25 assume !(~n <= 0); 238714#L26 call #t~ret0 := fact(~n - 1);< 238813#$Ultimate##0 ~n := #in~n; 238819#L25 assume ~n <= 0;#res := 1; 238845#factFINAL assume true; 238811#factEXIT >#66#return; 238809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238733#factFINAL assume true; 238713#factEXIT >#66#return; 238710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 238705#factFINAL assume true; 238704#factEXIT >#78#return; 237996#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 237995#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 237994#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 237993#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 237990#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 237894#L30-5 [2023-02-17 09:41:54,911 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:54,911 INFO L85 PathProgramCache]: Analyzing trace with hash -527076858, now seen corresponding path program 17 times [2023-02-17 09:41:54,911 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:54,911 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1900718827] [2023-02-17 09:41:54,911 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:54,911 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:54,924 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:54,924 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1478567662] [2023-02-17 09:41:54,924 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:54,924 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:54,925 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:54,932 INFO L229 MonitoredProcess]: Starting monitored process 183 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:54,933 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (183)] Waiting until timeout for monitored process [2023-02-17 09:41:55,310 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 15 check-sat command(s) [2023-02-17 09:41:55,310 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:55,313 INFO L263 TraceCheckSpWp]: Trace formula consists of 683 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-17 09:41:55,315 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:55,377 INFO L134 CoverageAnalysis]: Checked inductivity of 5479 backedges. 3139 proven. 235 refuted. 0 times theorem prover too weak. 2105 trivial. 0 not checked. [2023-02-17 09:41:55,377 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:55,571 INFO L134 CoverageAnalysis]: Checked inductivity of 5479 backedges. 442 proven. 1146 refuted. 0 times theorem prover too weak. 3891 trivial. 0 not checked. [2023-02-17 09:41:55,571 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:55,573 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1900718827] [2023-02-17 09:41:55,573 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:55,573 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1478567662] [2023-02-17 09:41:55,573 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1478567662] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:55,573 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:55,574 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 19] total 24 [2023-02-17 09:41:55,574 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [24316765] [2023-02-17 09:41:55,574 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:55,574 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:55,575 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:55,575 INFO L85 PathProgramCache]: Analyzing trace with hash -704791104, now seen corresponding path program 11 times [2023-02-17 09:41:55,575 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:55,575 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1405316892] [2023-02-17 09:41:55,575 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:55,575 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:55,588 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:55,588 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [948968676] [2023-02-17 09:41:55,588 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:41:55,589 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:55,589 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:55,596 INFO L229 MonitoredProcess]: Starting monitored process 184 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:55,597 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (184)] Waiting until timeout for monitored process [2023-02-17 09:41:55,923 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 16 check-sat command(s) [2023-02-17 09:41:55,923 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:55,924 INFO L263 TraceCheckSpWp]: Trace formula consists of 243 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:41:55,928 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:55,992 INFO L134 CoverageAnalysis]: Checked inductivity of 19737 backedges. 9573 proven. 144 refuted. 0 times theorem prover too weak. 10020 trivial. 0 not checked. [2023-02-17 09:41:55,992 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:56,228 INFO L134 CoverageAnalysis]: Checked inductivity of 19737 backedges. 729 proven. 2198 refuted. 0 times theorem prover too weak. 16810 trivial. 0 not checked. [2023-02-17 09:41:56,229 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:56,229 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1405316892] [2023-02-17 09:41:56,229 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:56,229 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [948968676] [2023-02-17 09:41:56,229 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [948968676] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:56,229 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:56,230 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 21] total 24 [2023-02-17 09:41:56,230 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1148207649] [2023-02-17 09:41:56,230 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:56,230 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:56,231 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:56,231 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2023-02-17 09:41:56,231 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=77, Invalid=475, Unknown=0, NotChecked=0, Total=552 [2023-02-17 09:41:56,231 INFO L87 Difference]: Start difference. First operand 2125 states and 3682 transitions. cyclomatic complexity: 1582 Second operand has 24 states, 17 states have (on average 4.0) internal successors, (68), 20 states have internal predecessors, (68), 17 states have call successors, (38), 2 states have call predecessors, (38), 8 states have return successors, (41), 12 states have call predecessors, (41), 17 states have call successors, (41) [2023-02-17 09:41:56,739 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:56,739 INFO L93 Difference]: Finished difference Result 2252 states and 3776 transitions. [2023-02-17 09:41:56,740 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2252 states and 3776 transitions. [2023-02-17 09:41:56,749 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 240 [2023-02-17 09:41:56,762 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2252 states to 2232 states and 3753 transitions. [2023-02-17 09:41:56,762 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 309 [2023-02-17 09:41:56,763 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 309 [2023-02-17 09:41:56,763 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2232 states and 3753 transitions. [2023-02-17 09:41:56,763 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:56,763 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2232 states and 3753 transitions. [2023-02-17 09:41:56,764 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2232 states and 3753 transitions. [2023-02-17 09:41:56,785 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2232 to 2136. [2023-02-17 09:41:56,787 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2136 states, 1338 states have (on average 1.04559043348281) internal successors, (1399), 1318 states have internal predecessors, (1399), 477 states have call successors, (509), 333 states have call predecessors, (509), 321 states have return successors, (1740), 484 states have call predecessors, (1740), 477 states have call successors, (1740) [2023-02-17 09:41:56,792 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2136 states to 2136 states and 3648 transitions. [2023-02-17 09:41:56,792 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2136 states and 3648 transitions. [2023-02-17 09:41:56,792 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2023-02-17 09:41:56,793 INFO L428 stractBuchiCegarLoop]: Abstraction has 2136 states and 3648 transitions. [2023-02-17 09:41:56,793 INFO L335 stractBuchiCegarLoop]: ======== Iteration 41 ============ [2023-02-17 09:41:56,793 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2136 states and 3648 transitions. [2023-02-17 09:41:56,797 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 194 [2023-02-17 09:41:56,797 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:56,797 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:56,799 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [50, 50, 26, 26, 26, 26, 24, 9, 8, 6, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:56,799 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [69, 69, 51, 51, 51, 51, 18, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:41:56,799 INFO L748 eck$LassoCheckResult]: Stem: 247580#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 247535#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 247536#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 247552#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 247544#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 247545#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 248259#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 248255#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 248256#$Ultimate##0 ~n := #in~n; 248260#L25 assume ~n <= 0;#res := 1; 248258#factFINAL assume true; 248254#factEXIT >#68#return; 248250#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 248251#$Ultimate##0 ~n := #in~n; 248257#L25 assume ~n <= 0;#res := 1; 248253#factFINAL assume true; 248249#factEXIT >#70#return; 248246#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 248247#$Ultimate##0 ~n := #in~n; 248252#L25 assume ~n <= 0;#res := 1; 248248#factFINAL assume true; 248245#factEXIT >#72#return; 248244#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 248242#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 248224#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 248223#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 248221#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 248215#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 248216#$Ultimate##0 ~n := #in~n; 248222#L25 assume !(~n <= 0); 248064#L26 call #t~ret0 := fact(~n - 1);< 248068#$Ultimate##0 ~n := #in~n; 248087#L25 assume ~n <= 0;#res := 1; 248088#factFINAL assume true; 248063#factEXIT >#66#return; 248067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248220#factFINAL assume true; 248214#factEXIT >#74#return; 248211#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 248212#$Ultimate##0 ~n := #in~n; 248219#L25 assume ~n <= 0;#res := 1; 248213#factFINAL assume true; 248210#factEXIT >#76#return; 248049#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 248209#$Ultimate##0 ~n := #in~n; 248239#L25 assume !(~n <= 0); 248065#L26 call #t~ret0 := fact(~n - 1);< 248068#$Ultimate##0 ~n := #in~n; 248087#L25 assume ~n <= 0;#res := 1; 248088#factFINAL assume true; 248063#factEXIT >#66#return; 248066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248048#factFINAL assume true; 248050#factEXIT >#78#return; 248208#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 248206#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 248205#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 248199#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 248195#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 248127#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 248131#$Ultimate##0 ~n := #in~n; 248191#L25 assume !(~n <= 0); 248187#L26 call #t~ret0 := fact(~n - 1);< 248190#$Ultimate##0 ~n := #in~n; 248243#L25 assume !(~n <= 0); 248186#L26 call #t~ret0 := fact(~n - 1);< 248235#$Ultimate##0 ~n := #in~n; 248241#L25 assume ~n <= 0;#res := 1; 248240#factFINAL assume true; 248233#factEXIT >#66#return; 248231#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248226#factFINAL assume true; 248201#factEXIT >#66#return; 248203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248207#factFINAL assume true; 248126#factEXIT >#74#return; 248129#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 248114#$Ultimate##0 ~n := #in~n; 248267#L25 assume ~n <= 0;#res := 1; 248266#factFINAL assume true; 248265#factEXIT >#76#return; 248227#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 248232#$Ultimate##0 ~n := #in~n; 248230#L25 assume !(~n <= 0); 248202#L26 call #t~ret0 := fact(~n - 1);< 248229#$Ultimate##0 ~n := #in~n; 248238#L25 assume !(~n <= 0); 248234#L26 call #t~ret0 := fact(~n - 1);< 248236#$Ultimate##0 ~n := #in~n; 248241#L25 assume ~n <= 0;#res := 1; 248240#factFINAL assume true; 248233#factEXIT >#66#return; 248231#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248226#factFINAL assume true; 248201#factEXIT >#66#return; 248204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248292#factFINAL assume true; 248291#factEXIT >#78#return; 248290#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 248289#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 248287#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 248284#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 248282#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247729#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 247730#$Ultimate##0 ~n := #in~n; 247745#L25 assume !(~n <= 0); 247742#L26 call #t~ret0 := fact(~n - 1);< 247781#$Ultimate##0 ~n := #in~n; 247780#L25 assume !(~n <= 0); 247741#L26 call #t~ret0 := fact(~n - 1);< 247754#$Ultimate##0 ~n := #in~n; 247780#L25 assume !(~n <= 0); 247741#L26 call #t~ret0 := fact(~n - 1);< 247754#$Ultimate##0 ~n := #in~n; 247771#L25 assume ~n <= 0;#res := 1; 247772#factFINAL assume true; 247824#factEXIT >#66#return; 247823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247757#factFINAL assume true; 247758#factEXIT >#66#return; 247749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247750#factFINAL assume true; 247740#factEXIT >#66#return; 247738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247739#factFINAL assume true; 247728#factEXIT >#74#return; 247683#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 247684#$Ultimate##0 ~n := #in~n; 247737#L25 assume ~n <= 0;#res := 1; 247734#factFINAL assume true; 247682#factEXIT >#76#return; 247602#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 247680#$Ultimate##0 ~n := #in~n; 247679#L25 assume !(~n <= 0); 247631#L26 call #t~ret0 := fact(~n - 1);< 247677#$Ultimate##0 ~n := #in~n; 247708#L25 assume !(~n <= 0); 247630#L26 call #t~ret0 := fact(~n - 1);< 247636#$Ultimate##0 ~n := #in~n; 247712#L25 assume !(~n <= 0); 247619#L26 call #t~ret0 := fact(~n - 1);< 247705#$Ultimate##0 ~n := #in~n; 247709#L25 assume ~n <= 0;#res := 1; 247706#factFINAL assume true; 247704#factEXIT >#66#return; 247702#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247700#factFINAL assume true; 247696#factEXIT >#66#return; 247693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247689#factFINAL assume true; 247685#factEXIT >#66#return; 247635#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247857#factFINAL assume true; 247601#factEXIT >#78#return; 247537#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 247538#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 247553#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 247579#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 247546#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 247547#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 247821#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 249159#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 249149#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 249157#$Ultimate##0 ~n := #in~n; 249246#L25 assume !(~n <= 0); 249244#L26 call #t~ret0 := fact(~n - 1);< 249245#$Ultimate##0 ~n := #in~n; 249249#L25 assume ~n <= 0;#res := 1; 249248#factFINAL assume true; 249243#factEXIT >#66#return; 249242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249240#factFINAL assume true; 249156#factEXIT >#68#return; 249150#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 247570#$Ultimate##0 ~n := #in~n; 249295#L25 assume ~n <= 0;#res := 1; 249247#factFINAL assume true; 249144#factEXIT >#70#return; 249141#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 249142#$Ultimate##0 ~n := #in~n; 249301#L25 assume !(~n <= 0); 247509#L26 call #t~ret0 := fact(~n - 1);< 249299#$Ultimate##0 ~n := #in~n; 249318#L25 assume ~n <= 0;#res := 1; 249317#factFINAL assume true; 249298#factEXIT >#66#return; 249297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249296#factFINAL assume true; 249140#factEXIT >#72#return; 249138#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 249137#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 249135#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 249134#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 249133#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 248951#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 249120#$Ultimate##0 ~n := #in~n; 249364#L25 assume !(~n <= 0); 248071#L26 call #t~ret0 := fact(~n - 1);< 248937#$Ultimate##0 ~n := #in~n; 248089#L25 assume ~n <= 0;#res := 1; 248069#factFINAL assume true; 248081#factEXIT >#66#return; 248217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249132#factFINAL assume true; 249103#factEXIT >#68#return; 249028#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 249032#$Ultimate##0 ~n := #in~n; 249238#L25 assume !(~n <= 0); 248075#L26 call #t~ret0 := fact(~n - 1);< 249056#$Ultimate##0 ~n := #in~n; 248089#L25 assume ~n <= 0;#res := 1; 248069#factFINAL assume true; 248081#factEXIT >#66#return; 248217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249132#factFINAL assume true; 249103#factEXIT >#70#return; 248967#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 248984#$Ultimate##0 ~n := #in~n; 248996#L25 assume ~n <= 0;#res := 1; 248988#factFINAL assume true; 248966#factEXIT >#72#return; 248980#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 249111#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 249110#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 249109#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 249107#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247838#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 247578#$Ultimate##0 ~n := #in~n; 249361#L25 assume !(~n <= 0); 248072#L26 call #t~ret0 := fact(~n - 1);< 248937#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248890#factFINAL assume true; 248889#factEXIT >#74#return; 248029#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 248051#$Ultimate##0 ~n := #in~n; 249210#L25 assume !(~n <= 0); 248070#L26 call #t~ret0 := fact(~n - 1);< 249056#$Ultimate##0 ~n := #in~n; 248089#L25 assume ~n <= 0;#res := 1; 248069#factFINAL assume true; 248081#factEXIT >#66#return; 248061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248062#factFINAL assume true; 248028#factEXIT >#76#return; 248032#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 249046#$Ultimate##0 ~n := #in~n; 249381#L25 assume !(~n <= 0); 248077#L26 call #t~ret0 := fact(~n - 1);< 248086#$Ultimate##0 ~n := #in~n; 248089#L25 assume ~n <= 0;#res := 1; 248069#factFINAL assume true; 248081#factEXIT >#66#return; 248061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248062#factFINAL assume true; 248028#factEXIT >#78#return; 248047#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 249043#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 249041#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 249039#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 249038#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247490#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 247491#$Ultimate##0 ~n := #in~n; 248924#L25 assume !(~n <= 0); 248900#L26 call #t~ret0 := fact(~n - 1);< 248912#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248999#factFINAL assume true; 248990#factEXIT >#66#return; 248991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249060#factFINAL assume true; 249040#factEXIT >#74#return; 248042#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 248051#$Ultimate##0 ~n := #in~n; 249210#L25 assume !(~n <= 0); 248070#L26 call #t~ret0 := fact(~n - 1);< 249056#$Ultimate##0 ~n := #in~n; 248089#L25 assume ~n <= 0;#res := 1; 248069#factFINAL assume true; 248081#factEXIT >#66#return; 248061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248062#factFINAL assume true; 248028#factEXIT >#76#return; 248041#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 249270#$Ultimate##0 ~n := #in~n; 249267#L25 assume !(~n <= 0); 248074#L26 call #t~ret0 := fact(~n - 1);< 248911#$Ultimate##0 ~n := #in~n; 248985#L25 assume !(~n <= 0); 248942#L26 call #t~ret0 := fact(~n - 1);< 248944#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248890#factFINAL assume true; 248889#factEXIT >#78#return; 247778#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 247588#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 247587#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 247586#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 247584#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247488#L30-5 [2023-02-17 09:41:56,799 INFO L750 eck$LassoCheckResult]: Loop: 247488#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 247489#$Ultimate##0 ~n := #in~n; 247982#L25 assume !(~n <= 0); 247942#L26 call #t~ret0 := fact(~n - 1);< 247978#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248021#L25 assume ~n <= 0;#res := 1; 248022#factFINAL assume true; 248008#factEXIT >#66#return; 248007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248000#factFINAL assume true; 247955#factEXIT >#66#return; 247959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247979#factFINAL assume true; 247965#factEXIT >#66#return; 247964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247947#factFINAL assume true; 247930#factEXIT >#66#return; 247943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247999#factFINAL assume true; 247997#factEXIT >#66#return; 247996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247995#factFINAL assume true; 247989#factEXIT >#66#return; 247987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247985#factFINAL assume true; 247972#factEXIT >#66#return; 247975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248060#factFINAL assume true; 248059#factEXIT >#66#return; 248053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247963#factFINAL assume true; 247962#factEXIT >#74#return; 247575#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 247576#$Ultimate##0 ~n := #in~n; 247983#L25 assume !(~n <= 0); 247935#L26 call #t~ret0 := fact(~n - 1);< 247977#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248021#L25 assume ~n <= 0;#res := 1; 248022#factFINAL assume true; 248008#factEXIT >#66#return; 248007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248000#factFINAL assume true; 247955#factEXIT >#66#return; 247959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247979#factFINAL assume true; 247965#factEXIT >#66#return; 247966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248116#factFINAL assume true; 247589#factEXIT >#76#return; 247599#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 247961#$Ultimate##0 ~n := #in~n; 247984#L25 assume !(~n <= 0); 247948#L26 call #t~ret0 := fact(~n - 1);< 247976#$Ultimate##0 ~n := #in~n; 248026#L25 assume !(~n <= 0); 247932#L26 call #t~ret0 := fact(~n - 1);< 247950#$Ultimate##0 ~n := #in~n; 248014#L25 assume !(~n <= 0); 247937#L26 call #t~ret0 := fact(~n - 1);< 247967#$Ultimate##0 ~n := #in~n; 248017#L25 assume !(~n <= 0); 247931#L26 call #t~ret0 := fact(~n - 1);< 248002#$Ultimate##0 ~n := #in~n; 248019#L25 assume !(~n <= 0); 247938#L26 call #t~ret0 := fact(~n - 1);< 248012#$Ultimate##0 ~n := #in~n; 248021#L25 assume ~n <= 0;#res := 1; 248022#factFINAL assume true; 248008#factEXIT >#66#return; 248007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248000#factFINAL assume true; 247955#factEXIT >#66#return; 247959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247979#factFINAL assume true; 247965#factEXIT >#66#return; 247964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247947#factFINAL assume true; 247930#factEXIT >#66#return; 247943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 247999#factFINAL assume true; 247997#factEXIT >#66#return; 247998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248054#factFINAL assume true; 247969#factEXIT >#78#return; 247598#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 249176#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 249175#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 249174#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 249173#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 249172#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 247566#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 247555#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247531#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 247532#$Ultimate##0 ~n := #in~n; 249417#L25 assume !(~n <= 0); 249413#L26 call #t~ret0 := fact(~n - 1);< 249416#$Ultimate##0 ~n := #in~n; 249250#L25 assume !(~n <= 0); 249412#L26 call #t~ret0 := fact(~n - 1);< 249420#$Ultimate##0 ~n := #in~n; 249250#L25 assume !(~n <= 0); 249412#L26 call #t~ret0 := fact(~n - 1);< 249420#$Ultimate##0 ~n := #in~n; 249250#L25 assume !(~n <= 0); 249412#L26 call #t~ret0 := fact(~n - 1);< 249420#$Ultimate##0 ~n := #in~n; 249250#L25 assume !(~n <= 0); 249412#L26 call #t~ret0 := fact(~n - 1);< 249420#$Ultimate##0 ~n := #in~n; 249421#L25 assume ~n <= 0;#res := 1; 249441#factFINAL assume true; 249440#factEXIT >#66#return; 249439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249438#factFINAL assume true; 249422#factEXIT >#66#return; 249423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249436#factFINAL assume true; 249435#factEXIT >#66#return; 249434#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249433#factFINAL assume true; 249431#factEXIT >#66#return; 249430#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249429#factFINAL assume true; 249426#factEXIT >#66#return; 249428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249406#factFINAL assume true; 249404#factEXIT >#68#return; 247569#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 247570#$Ultimate##0 ~n := #in~n; 249295#L25 assume ~n <= 0;#res := 1; 249247#factFINAL assume true; 249144#factEXIT >#70#return; 247565#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 249520#$Ultimate##0 ~n := #in~n; 249518#L25 assume !(~n <= 0); 247504#L26 call #t~ret0 := fact(~n - 1);< 249515#$Ultimate##0 ~n := #in~n; 249512#L25 assume !(~n <= 0); 247507#L26 call #t~ret0 := fact(~n - 1);< 249510#$Ultimate##0 ~n := #in~n; 249508#L25 assume !(~n <= 0); 247510#L26 call #t~ret0 := fact(~n - 1);< 249506#$Ultimate##0 ~n := #in~n; 249504#L25 assume !(~n <= 0); 247506#L26 call #t~ret0 := fact(~n - 1);< 249503#$Ultimate##0 ~n := #in~n; 249319#L25 assume !(~n <= 0); 247493#L26 call #t~ret0 := fact(~n - 1);< 249501#$Ultimate##0 ~n := #in~n; 249319#L25 assume !(~n <= 0); 247493#L26 call #t~ret0 := fact(~n - 1);< 249501#$Ultimate##0 ~n := #in~n; 247562#L25 assume ~n <= 0;#res := 1; 247563#factFINAL assume true; 247492#factEXIT >#66#return; 247494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249565#factFINAL assume true; 249563#factEXIT >#66#return; 249564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249566#factFINAL assume true; 249562#factEXIT >#66#return; 249560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249558#factFINAL assume true; 249556#factEXIT >#66#return; 249555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249553#factFINAL assume true; 249551#factEXIT >#66#return; 249552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249554#factFINAL assume true; 249549#factEXIT >#66#return; 249547#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249545#factFINAL assume true; 249543#factEXIT >#72#return; 247548#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 247549#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 249400#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 249398#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 247556#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247557#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 249045#$Ultimate##0 ~n := #in~n; 249113#L25 assume !(~n <= 0); 248902#L26 call #t~ret0 := fact(~n - 1);< 248912#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249115#factFINAL assume true; 249114#factEXIT >#68#return; 249026#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 249032#$Ultimate##0 ~n := #in~n; 249238#L25 assume !(~n <= 0); 248075#L26 call #t~ret0 := fact(~n - 1);< 249056#$Ultimate##0 ~n := #in~n; 249055#L25 assume !(~n <= 0); 248903#L26 call #t~ret0 := fact(~n - 1);< 249004#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249115#factFINAL assume true; 249114#factEXIT >#70#return; 248084#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 249102#$Ultimate##0 ~n := #in~n; 249034#L25 assume ~n <= 0;#res := 1; 248988#factFINAL assume true; 248966#factEXIT >#72#return; 248982#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 249087#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 249083#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 249082#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 249081#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 249029#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 249045#$Ultimate##0 ~n := #in~n; 249113#L25 assume !(~n <= 0); 248902#L26 call #t~ret0 := fact(~n - 1);< 248912#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248999#factFINAL assume true; 248990#factEXIT >#66#return; 248993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249377#factFINAL assume true; 249011#factEXIT >#68#return; 249030#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 249032#$Ultimate##0 ~n := #in~n; 249238#L25 assume !(~n <= 0); 248075#L26 call #t~ret0 := fact(~n - 1);< 249056#$Ultimate##0 ~n := #in~n; 249055#L25 assume !(~n <= 0); 248903#L26 call #t~ret0 := fact(~n - 1);< 249004#$Ultimate##0 ~n := #in~n; 249002#L25 assume !(~n <= 0); 248901#L26 call #t~ret0 := fact(~n - 1);< 248994#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248999#factFINAL assume true; 248990#factEXIT >#66#return; 248993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249377#factFINAL assume true; 249011#factEXIT >#70#return; 248969#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 248984#$Ultimate##0 ~n := #in~n; 248996#L25 assume ~n <= 0;#res := 1; 248988#factFINAL assume true; 248966#factEXIT >#72#return; 248983#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 249003#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 248997#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 248989#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 248986#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247835#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 247491#$Ultimate##0 ~n := #in~n; 248924#L25 assume !(~n <= 0); 248900#L26 call #t~ret0 := fact(~n - 1);< 248912#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248999#factFINAL assume true; 248990#factEXIT >#66#return; 248991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 249060#factFINAL assume true; 249040#factEXIT >#74#return; 248034#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 248051#$Ultimate##0 ~n := #in~n; 249210#L25 assume !(~n <= 0); 248070#L26 call #t~ret0 := fact(~n - 1);< 249056#$Ultimate##0 ~n := #in~n; 249055#L25 assume !(~n <= 0); 248903#L26 call #t~ret0 := fact(~n - 1);< 249004#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248890#factFINAL assume true; 248889#factEXIT >#76#return; 248040#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 249270#$Ultimate##0 ~n := #in~n; 249267#L25 assume !(~n <= 0); 248074#L26 call #t~ret0 := fact(~n - 1);< 248911#$Ultimate##0 ~n := #in~n; 248089#L25 assume ~n <= 0;#res := 1; 248069#factFINAL assume true; 248081#factEXIT >#66#return; 248061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248062#factFINAL assume true; 248028#factEXIT >#78#return; 247539#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 247540#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 247554#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 249033#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 248913#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247845#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 247491#$Ultimate##0 ~n := #in~n; 248924#L25 assume !(~n <= 0); 248900#L26 call #t~ret0 := fact(~n - 1);< 248912#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 249369#L25 assume !(~n <= 0); 248905#L26 call #t~ret0 := fact(~n - 1);< 248961#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248999#factFINAL assume true; 248990#factEXIT >#66#return; 248987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248945#factFINAL assume true; 248925#factEXIT >#66#return; 248914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248893#factFINAL assume true; 248891#factEXIT >#74#return; 248043#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 248051#$Ultimate##0 ~n := #in~n; 249210#L25 assume !(~n <= 0); 248070#L26 call #t~ret0 := fact(~n - 1);< 249056#$Ultimate##0 ~n := #in~n; 249055#L25 assume !(~n <= 0); 248903#L26 call #t~ret0 := fact(~n - 1);< 249004#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248890#factFINAL assume true; 248889#factEXIT >#76#return; 248041#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 249270#$Ultimate##0 ~n := #in~n; 249267#L25 assume !(~n <= 0); 248074#L26 call #t~ret0 := fact(~n - 1);< 248911#$Ultimate##0 ~n := #in~n; 248985#L25 assume !(~n <= 0); 248942#L26 call #t~ret0 := fact(~n - 1);< 248944#$Ultimate##0 ~n := #in~n; 248965#L25 assume ~n <= 0;#res := 1; 248963#factFINAL assume true; 248941#factEXIT >#66#return; 248940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248916#factFINAL assume true; 248897#factEXIT >#66#return; 248892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 248890#factFINAL assume true; 248889#factEXIT >#78#return; 247778#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 247588#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 247587#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 247586#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 247584#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 247488#L30-5 [2023-02-17 09:41:56,799 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:56,800 INFO L85 PathProgramCache]: Analyzing trace with hash -1028931698, now seen corresponding path program 18 times [2023-02-17 09:41:56,800 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:56,800 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1990420053] [2023-02-17 09:41:56,800 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:56,800 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:56,810 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:56,810 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1703954696] [2023-02-17 09:41:56,810 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:56,810 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:56,810 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:56,814 INFO L229 MonitoredProcess]: Starting monitored process 185 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:56,815 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (185)] Waiting until timeout for monitored process [2023-02-17 09:41:57,195 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 16 check-sat command(s) [2023-02-17 09:41:57,195 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:57,198 INFO L263 TraceCheckSpWp]: Trace formula consists of 679 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:41:57,200 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:57,258 INFO L134 CoverageAnalysis]: Checked inductivity of 5725 backedges. 394 proven. 149 refuted. 0 times theorem prover too weak. 5182 trivial. 0 not checked. [2023-02-17 09:41:57,259 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:57,394 INFO L134 CoverageAnalysis]: Checked inductivity of 5725 backedges. 393 proven. 151 refuted. 0 times theorem prover too weak. 5181 trivial. 0 not checked. [2023-02-17 09:41:57,394 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:57,394 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1990420053] [2023-02-17 09:41:57,394 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:57,394 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1703954696] [2023-02-17 09:41:57,394 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1703954696] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:57,394 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:57,394 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 17] total 28 [2023-02-17 09:41:57,395 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [598962545] [2023-02-17 09:41:57,395 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:57,395 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:41:57,395 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:57,395 INFO L85 PathProgramCache]: Analyzing trace with hash -834835648, now seen corresponding path program 12 times [2023-02-17 09:41:57,395 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:57,396 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [358010324] [2023-02-17 09:41:57,396 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:57,396 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:41:57,408 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:41:57,409 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [488933990] [2023-02-17 09:41:57,409 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:41:57,409 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:41:57,409 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:41:57,412 INFO L229 MonitoredProcess]: Starting monitored process 186 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:41:57,412 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (186)] Waiting until timeout for monitored process [2023-02-17 09:41:57,819 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 34 check-sat command(s) [2023-02-17 09:41:57,819 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:41:57,822 INFO L263 TraceCheckSpWp]: Trace formula consists of 575 conjuncts, 22 conjunts are in the unsatisfiable core [2023-02-17 09:41:57,825 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:41:57,893 INFO L134 CoverageAnalysis]: Checked inductivity of 12015 backedges. 2208 proven. 915 refuted. 0 times theorem prover too weak. 8892 trivial. 0 not checked. [2023-02-17 09:41:57,894 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:41:58,082 INFO L134 CoverageAnalysis]: Checked inductivity of 12015 backedges. 1222 proven. 1033 refuted. 0 times theorem prover too weak. 9760 trivial. 0 not checked. [2023-02-17 09:41:58,082 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:41:58,082 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [358010324] [2023-02-17 09:41:58,082 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:41:58,082 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [488933990] [2023-02-17 09:41:58,082 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [488933990] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:41:58,082 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:41:58,083 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 21] total 26 [2023-02-17 09:41:58,083 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1194696135] [2023-02-17 09:41:58,083 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:41:58,083 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:41:58,083 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:41:58,083 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2023-02-17 09:41:58,084 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=116, Invalid=640, Unknown=0, NotChecked=0, Total=756 [2023-02-17 09:41:58,084 INFO L87 Difference]: Start difference. First operand 2136 states and 3648 transitions. cyclomatic complexity: 1537 Second operand has 28 states, 26 states have (on average 3.6538461538461537) internal successors, (95), 28 states have internal predecessors, (95), 16 states have call successors, (46), 1 states have call predecessors, (46), 3 states have return successors, (46), 17 states have call predecessors, (46), 16 states have call successors, (46) [2023-02-17 09:41:59,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:41:59,860 INFO L93 Difference]: Finished difference Result 3163 states and 7832 transitions. [2023-02-17 09:41:59,861 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3163 states and 7832 transitions. [2023-02-17 09:41:59,884 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 533 [2023-02-17 09:41:59,902 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3163 states to 2645 states and 5618 transitions. [2023-02-17 09:41:59,902 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 327 [2023-02-17 09:41:59,903 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 327 [2023-02-17 09:41:59,903 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2645 states and 5618 transitions. [2023-02-17 09:41:59,903 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:41:59,903 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2645 states and 5618 transitions. [2023-02-17 09:41:59,904 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2645 states and 5618 transitions. [2023-02-17 09:41:59,947 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2645 to 2143. [2023-02-17 09:41:59,948 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2143 states, 1343 states have (on average 1.0446760982874161) internal successors, (1403), 1322 states have internal predecessors, (1403), 479 states have call successors, (511), 333 states have call predecessors, (511), 321 states have return successors, (1743), 487 states have call predecessors, (1743), 479 states have call successors, (1743) [2023-02-17 09:41:59,954 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2143 states to 2143 states and 3657 transitions. [2023-02-17 09:41:59,954 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2143 states and 3657 transitions. [2023-02-17 09:41:59,954 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 66 states. [2023-02-17 09:41:59,954 INFO L428 stractBuchiCegarLoop]: Abstraction has 2143 states and 3657 transitions. [2023-02-17 09:41:59,955 INFO L335 stractBuchiCegarLoop]: ======== Iteration 42 ============ [2023-02-17 09:41:59,955 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2143 states and 3657 transitions. [2023-02-17 09:41:59,959 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 201 [2023-02-17 09:41:59,959 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:41:59,959 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:41:59,962 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [79, 79, 49, 49, 49, 49, 30, 11, 10, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:41:59,962 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [90, 90, 69, 69, 69, 69, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:41:59,962 INFO L748 eck$LassoCheckResult]: Stem: 257559#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 257513#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 257514#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 257532#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 257524#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 257525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258007#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258003#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258004#$Ultimate##0 ~n := #in~n; 258008#L25 assume ~n <= 0;#res := 1; 258006#factFINAL assume true; 258002#factEXIT >#68#return; 257998#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257999#$Ultimate##0 ~n := #in~n; 258005#L25 assume ~n <= 0;#res := 1; 258001#factFINAL assume true; 257997#factEXIT >#70#return; 257994#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257995#$Ultimate##0 ~n := #in~n; 258000#L25 assume ~n <= 0;#res := 1; 257996#factFINAL assume true; 257993#factEXIT >#72#return; 257992#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257991#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 257990#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257988#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257984#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257976#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257977#$Ultimate##0 ~n := #in~n; 257986#L25 assume !(~n <= 0); 257979#L26 call #t~ret0 := fact(~n - 1);< 257982#$Ultimate##0 ~n := #in~n; 257989#L25 assume ~n <= 0;#res := 1; 257985#factFINAL assume true; 257978#factEXIT >#66#return; 257981#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257983#factFINAL assume true; 257975#factEXIT >#74#return; 257962#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257963#$Ultimate##0 ~n := #in~n; 257969#L25 assume ~n <= 0;#res := 1; 257967#factFINAL assume true; 257961#factEXIT >#76#return; 257958#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257959#$Ultimate##0 ~n := #in~n; 257987#L25 assume !(~n <= 0); 257980#L26 call #t~ret0 := fact(~n - 1);< 257982#$Ultimate##0 ~n := #in~n; 257989#L25 assume ~n <= 0;#res := 1; 257985#factFINAL assume true; 257978#factEXIT >#66#return; 257974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257973#factFINAL assume true; 257957#factEXIT >#78#return; 257949#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257946#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257940#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257930#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257927#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257816#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257908#$Ultimate##0 ~n := #in~n; 257944#L25 assume !(~n <= 0); 257934#L26 call #t~ret0 := fact(~n - 1);< 257938#$Ultimate##0 ~n := #in~n; 257954#L25 assume !(~n <= 0); 257932#L26 call #t~ret0 := fact(~n - 1);< 257953#$Ultimate##0 ~n := #in~n; 257964#L25 assume ~n <= 0;#res := 1; 257960#factFINAL assume true; 257950#factEXIT >#66#return; 257947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257941#factFINAL assume true; 257931#factEXIT >#66#return; 257928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257926#factFINAL assume true; 257924#factEXIT >#74#return; 257914#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257917#$Ultimate##0 ~n := #in~n; 257925#L25 assume ~n <= 0;#res := 1; 257918#factFINAL assume true; 257911#factEXIT >#76#return; 257909#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257910#$Ultimate##0 ~n := #in~n; 257968#L25 assume !(~n <= 0); 257935#L26 call #t~ret0 := fact(~n - 1);< 257966#$Ultimate##0 ~n := #in~n; 257965#L25 assume !(~n <= 0); 257951#L26 call #t~ret0 := fact(~n - 1);< 257952#$Ultimate##0 ~n := #in~n; 257964#L25 assume ~n <= 0;#res := 1; 257960#factFINAL assume true; 257950#factEXIT >#66#return; 257947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257941#factFINAL assume true; 257931#factEXIT >#66#return; 257936#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257970#factFINAL assume true; 257956#factEXIT >#78#return; 257955#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257948#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257945#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257939#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257929#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257815#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257908#$Ultimate##0 ~n := #in~n; 257944#L25 assume !(~n <= 0); 257934#L26 call #t~ret0 := fact(~n - 1);< 257938#$Ultimate##0 ~n := #in~n; 257954#L25 assume !(~n <= 0); 257932#L26 call #t~ret0 := fact(~n - 1);< 257953#$Ultimate##0 ~n := #in~n; 257964#L25 assume ~n <= 0;#res := 1; 257960#factFINAL assume true; 257950#factEXIT >#66#return; 257947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257941#factFINAL assume true; 257931#factEXIT >#66#return; 257928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257926#factFINAL assume true; 257924#factEXIT >#74#return; 257913#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257923#$Ultimate##0 ~n := #in~n; 258517#L25 assume ~n <= 0;#res := 1; 258516#factFINAL assume true; 258515#factEXIT >#76#return; 257810#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258471#$Ultimate##0 ~n := #in~n; 258464#L25 assume !(~n <= 0); 258455#L26 call #t~ret0 := fact(~n - 1);< 258459#$Ultimate##0 ~n := #in~n; 258480#L25 assume !(~n <= 0); 258468#L26 call #t~ret0 := fact(~n - 1);< 258470#$Ultimate##0 ~n := #in~n; 258476#L25 assume ~n <= 0;#res := 1; 258474#factFINAL assume true; 258467#factEXIT >#66#return; 258463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258458#factFINAL assume true; 258454#factEXIT >#66#return; 258456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258116#factFINAL assume true; 257809#factEXIT >#78#return; 257803#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257799#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257796#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257794#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257790#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257674#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257675#$Ultimate##0 ~n := #in~n; 257767#L25 assume !(~n <= 0); 257757#L26 call #t~ret0 := fact(~n - 1);< 257758#$Ultimate##0 ~n := #in~n; 257772#L25 assume !(~n <= 0); 257761#L26 call #t~ret0 := fact(~n - 1);< 257784#$Ultimate##0 ~n := #in~n; 257772#L25 assume !(~n <= 0); 257761#L26 call #t~ret0 := fact(~n - 1);< 257784#$Ultimate##0 ~n := #in~n; 257772#L25 assume !(~n <= 0); 257761#L26 call #t~ret0 := fact(~n - 1);< 257784#$Ultimate##0 ~n := #in~n; 257786#L25 assume ~n <= 0;#res := 1; 257785#factFINAL assume true; 257783#factEXIT >#66#return; 257782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257778#factFINAL assume true; 257779#factEXIT >#66#return; 257788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257770#factFINAL assume true; 257771#factEXIT >#66#return; 257787#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257760#factFINAL assume true; 257762#factEXIT >#66#return; 257723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257724#factFINAL assume true; 257673#factEXIT >#74#return; 257664#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257665#$Ultimate##0 ~n := #in~n; 257667#L25 assume ~n <= 0;#res := 1; 257666#factFINAL assume true; 257663#factEXIT >#76#return; 257584#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257642#$Ultimate##0 ~n := #in~n; 257640#L25 assume !(~n <= 0); 257606#L26 call #t~ret0 := fact(~n - 1);< 257639#$Ultimate##0 ~n := #in~n; 257660#L25 assume !(~n <= 0); 257596#L26 call #t~ret0 := fact(~n - 1);< 257613#$Ultimate##0 ~n := #in~n; 257658#L25 assume !(~n <= 0); 257600#L26 call #t~ret0 := fact(~n - 1);< 257655#$Ultimate##0 ~n := #in~n; 257657#L25 assume ~n <= 0;#res := 1; 257656#factFINAL assume true; 257654#factEXIT >#66#return; 257653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257651#factFINAL assume true; 257649#factEXIT >#66#return; 257648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257647#factFINAL assume true; 257643#factEXIT >#66#return; 257612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257901#factFINAL assume true; 257583#factEXIT >#78#return; 257515#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257516#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 259072#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 259071#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 259070#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 257570#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 257571#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257537#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257538#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257549#$Ultimate##0 ~n := #in~n; 259069#L25 assume !(~n <= 0); 259066#L26 call #t~ret0 := fact(~n - 1);< 259067#$Ultimate##0 ~n := #in~n; 259073#L25 assume ~n <= 0;#res := 1; 259068#factFINAL assume true; 259065#factEXIT >#66#return; 259064#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259063#factFINAL assume true; 259061#factEXIT >#68#return; 259055#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 259059#$Ultimate##0 ~n := #in~n; 259062#L25 assume ~n <= 0;#res := 1; 259060#factFINAL assume true; 259050#factEXIT >#70#return; 257485#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257486#$Ultimate##0 ~n := #in~n; 258962#L25 assume !(~n <= 0); 257498#L26 call #t~ret0 := fact(~n - 1);< 258946#$Ultimate##0 ~n := #in~n; 258951#L25 assume ~n <= 0;#res := 1; 258950#factFINAL assume true; 258945#factEXIT >#66#return; 258942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258941#factFINAL assume true; 257564#factEXIT >#72#return; 257565#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258932#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258930#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258928#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258921#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258893#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258918#$Ultimate##0 ~n := #in~n; 259028#L25 assume !(~n <= 0); 258776#L26 call #t~ret0 := fact(~n - 1);< 258995#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258920#factFINAL assume true; 258916#factEXIT >#68#return; 258901#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258914#$Ultimate##0 ~n := #in~n; 259075#L25 assume !(~n <= 0); 258768#L26 call #t~ret0 := fact(~n - 1);< 258923#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258920#factFINAL assume true; 258916#factEXIT >#70#return; 258868#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258874#$Ultimate##0 ~n := #in~n; 258976#L25 assume ~n <= 0;#res := 1; 258817#factFINAL assume true; 258857#factEXIT >#72#return; 258856#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258854#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258852#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258850#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258848#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257897#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258763#$Ultimate##0 ~n := #in~n; 259013#L25 assume !(~n <= 0); 258777#L26 call #t~ret0 := fact(~n - 1);< 258995#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258762#factFINAL assume true; 258758#factEXIT >#74#return; 258739#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258761#$Ultimate##0 ~n := #in~n; 259002#L25 assume !(~n <= 0); 258770#L26 call #t~ret0 := fact(~n - 1);< 258923#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258760#factFINAL assume true; 258737#factEXIT >#76#return; 258738#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258924#$Ultimate##0 ~n := #in~n; 259017#L25 assume !(~n <= 0); 258775#L26 call #t~ret0 := fact(~n - 1);< 258781#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258760#factFINAL assume true; 258737#factEXIT >#78#return; 258756#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258922#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 258919#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258915#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258875#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257477#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257478#$Ultimate##0 ~n := #in~n; 258813#L25 assume !(~n <= 0); 258785#L26 call #t~ret0 := fact(~n - 1);< 258799#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259100#factFINAL assume true; 259095#factEXIT >#74#return; 258747#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258761#$Ultimate##0 ~n := #in~n; 259002#L25 assume !(~n <= 0); 258770#L26 call #t~ret0 := fact(~n - 1);< 258923#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258760#factFINAL assume true; 258737#factEXIT >#76#return; 258746#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258764#$Ultimate##0 ~n := #in~n; 258965#L25 assume !(~n <= 0); 258771#L26 call #t~ret0 := fact(~n - 1);< 258798#$Ultimate##0 ~n := #in~n; 258842#L25 assume !(~n <= 0); 258821#L26 call #t~ret0 := fact(~n - 1);< 258822#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258762#factFINAL assume true; 258758#factEXIT >#78#return; 258759#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257535#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257536#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 259241#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 259240#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257567#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257478#$Ultimate##0 ~n := #in~n; 258813#L25 assume !(~n <= 0); 258785#L26 call #t~ret0 := fact(~n - 1);< 258799#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258991#factFINAL assume true; 258980#factEXIT >#66#return; 258988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259025#factFINAL assume true; 259019#factEXIT >#66#return; 259023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259103#factFINAL assume true; 259102#factEXIT >#74#return; 257883#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258763#$Ultimate##0 ~n := #in~n; 259013#L25 assume !(~n <= 0); 258777#L26 call #t~ret0 := fact(~n - 1);< 258995#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258991#factFINAL assume true; 258980#factEXIT >#66#return; 258988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259025#factFINAL assume true; 259019#factEXIT >#66#return; 259023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259103#factFINAL assume true; 259102#factEXIT >#76#return; 257885#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258763#$Ultimate##0 ~n := #in~n; 259013#L25 assume !(~n <= 0); 258777#L26 call #t~ret0 := fact(~n - 1);< 258995#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258991#factFINAL assume true; 258980#factEXIT >#66#return; 258988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259025#factFINAL assume true; 259019#factEXIT >#66#return; 259023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259103#factFINAL assume true; 259102#factEXIT >#78#return; 257573#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257572#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257569#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257568#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257566#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257475#L30-5 [2023-02-17 09:41:59,963 INFO L750 eck$LassoCheckResult]: Loop: 257475#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257476#$Ultimate##0 ~n := #in~n; 258228#L25 assume !(~n <= 0); 258122#L26 call #t~ret0 := fact(~n - 1);< 258146#$Ultimate##0 ~n := #in~n; 258189#L25 assume !(~n <= 0); 258126#L26 call #t~ret0 := fact(~n - 1);< 258187#$Ultimate##0 ~n := #in~n; 258189#L25 assume !(~n <= 0); 258126#L26 call #t~ret0 := fact(~n - 1);< 258187#$Ultimate##0 ~n := #in~n; 258189#L25 assume !(~n <= 0); 258126#L26 call #t~ret0 := fact(~n - 1);< 258187#$Ultimate##0 ~n := #in~n; 258190#L25 assume ~n <= 0;#res := 1; 258191#factFINAL assume true; 258183#factEXIT >#66#return; 258181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258179#factFINAL assume true; 258167#factEXIT >#66#return; 258163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258160#factFINAL assume true; 258152#factEXIT >#66#return; 258150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258147#factFINAL assume true; 258141#factEXIT >#66#return; 258140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258138#factFINAL assume true; 258134#factEXIT >#74#return; 257554#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 257555#$Ultimate##0 ~n := #in~n; 258166#L25 assume !(~n <= 0); 258123#L26 call #t~ret0 := fact(~n - 1);< 258158#$Ultimate##0 ~n := #in~n; 258159#L25 assume ~n <= 0;#res := 1; 258231#factFINAL assume true; 258229#factEXIT >#66#return; 258227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258226#factFINAL assume true; 258225#factEXIT >#76#return; 258136#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258139#$Ultimate##0 ~n := #in~n; 258230#L25 assume !(~n <= 0); 258142#L26 call #t~ret0 := fact(~n - 1);< 258193#$Ultimate##0 ~n := #in~n; 258192#L25 assume !(~n <= 0); 258154#L26 call #t~ret0 := fact(~n - 1);< 258156#$Ultimate##0 ~n := #in~n; 258173#L25 assume !(~n <= 0); 258168#L26 call #t~ret0 := fact(~n - 1);< 258171#$Ultimate##0 ~n := #in~n; 258188#L25 assume !(~n <= 0); 258184#L26 call #t~ret0 := fact(~n - 1);< 258186#$Ultimate##0 ~n := #in~n; 258190#L25 assume ~n <= 0;#res := 1; 258191#factFINAL assume true; 258183#factEXIT >#66#return; 258181#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258179#factFINAL assume true; 258167#factEXIT >#66#return; 258163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258160#factFINAL assume true; 258152#factEXIT >#66#return; 258150#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258147#factFINAL assume true; 258141#factEXIT >#66#return; 258140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258138#factFINAL assume true; 258134#factEXIT >#78#return; 257582#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257533#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257534#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257558#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 257530#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 257531#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 257543#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257544#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257489#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257490#$Ultimate##0 ~n := #in~n; 259201#L25 assume !(~n <= 0); 259196#L26 call #t~ret0 := fact(~n - 1);< 259200#$Ultimate##0 ~n := #in~n; 259074#L25 assume !(~n <= 0); 259197#L26 call #t~ret0 := fact(~n - 1);< 259214#$Ultimate##0 ~n := #in~n; 259074#L25 assume !(~n <= 0); 259197#L26 call #t~ret0 := fact(~n - 1);< 259214#$Ultimate##0 ~n := #in~n; 259074#L25 assume !(~n <= 0); 259197#L26 call #t~ret0 := fact(~n - 1);< 259214#$Ultimate##0 ~n := #in~n; 259074#L25 assume !(~n <= 0); 259197#L26 call #t~ret0 := fact(~n - 1);< 259214#$Ultimate##0 ~n := #in~n; 259217#L25 assume ~n <= 0;#res := 1; 259238#factFINAL assume true; 259237#factEXIT >#66#return; 259236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259235#factFINAL assume true; 259233#factEXIT >#66#return; 259232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259231#factFINAL assume true; 259230#factEXIT >#66#return; 259229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259228#factFINAL assume true; 259226#factEXIT >#66#return; 259225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259224#factFINAL assume true; 259220#factEXIT >#66#return; 259221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259119#factFINAL assume true; 259120#factEXIT >#68#return; 259051#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 259059#$Ultimate##0 ~n := #in~n; 259062#L25 assume ~n <= 0;#res := 1; 259060#factFINAL assume true; 259050#factEXIT >#70#return; 257520#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 257552#$Ultimate##0 ~n := #in~n; 257546#L25 assume !(~n <= 0); 257519#L26 call #t~ret0 := fact(~n - 1);< 257521#$Ultimate##0 ~n := #in~n; 259523#L25 assume !(~n <= 0); 259513#L26 call #t~ret0 := fact(~n - 1);< 259520#$Ultimate##0 ~n := #in~n; 259517#L25 assume !(~n <= 0); 257495#L26 call #t~ret0 := fact(~n - 1);< 259512#$Ultimate##0 ~n := #in~n; 259509#L25 assume !(~n <= 0); 257497#L26 call #t~ret0 := fact(~n - 1);< 259494#$Ultimate##0 ~n := #in~n; 258952#L25 assume !(~n <= 0); 257480#L26 call #t~ret0 := fact(~n - 1);< 259492#$Ultimate##0 ~n := #in~n; 259507#L25 assume ~n <= 0;#res := 1; 259491#factFINAL assume true; 257479#factEXIT >#66#return; 257481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259505#factFINAL assume true; 259504#factEXIT >#66#return; 257541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 257493#factFINAL assume true; 257499#factEXIT >#66#return; 259485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259587#factFINAL assume true; 259585#factEXIT >#66#return; 259584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259583#factFINAL assume true; 259581#factEXIT >#66#return; 259582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259586#factFINAL assume true; 259522#factEXIT >#72#return; 257526#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257527#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258964#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258963#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258961#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258886#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258927#$Ultimate##0 ~n := #in~n; 258935#L25 assume !(~n <= 0); 258787#L26 call #t~ret0 := fact(~n - 1);< 258799#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258991#factFINAL assume true; 258980#factEXIT >#66#return; 258988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259025#factFINAL assume true; 259019#factEXIT >#66#return; 259024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259087#factFINAL assume true; 259088#factEXIT >#66#return; 259048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259049#factFINAL assume true; 259006#factEXIT >#68#return; 258903#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258918#$Ultimate##0 ~n := #in~n; 259028#L25 assume !(~n <= 0); 258776#L26 call #t~ret0 := fact(~n - 1);< 258995#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258991#factFINAL assume true; 258980#factEXIT >#66#return; 258988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259025#factFINAL assume true; 259019#factEXIT >#66#return; 259024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259087#factFINAL assume true; 259088#factEXIT >#66#return; 259083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259094#factFINAL assume true; 259080#factEXIT >#66#return; 259084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259039#factFINAL assume true; 259040#factEXIT >#70#return; 258864#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 259009#$Ultimate##0 ~n := #in~n; 258974#L25 assume ~n <= 0;#res := 1; 258817#factFINAL assume true; 258857#factEXIT >#72#return; 258873#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258940#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258934#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258933#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258931#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 258904#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 258927#$Ultimate##0 ~n := #in~n; 258935#L25 assume !(~n <= 0); 258787#L26 call #t~ret0 := fact(~n - 1);< 258799#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258991#factFINAL assume true; 258980#factEXIT >#66#return; 258988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259025#factFINAL assume true; 259019#factEXIT >#66#return; 259024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259087#factFINAL assume true; 259088#factEXIT >#66#return; 259048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259049#factFINAL assume true; 259006#factEXIT >#68#return; 258883#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258918#$Ultimate##0 ~n := #in~n; 259028#L25 assume !(~n <= 0); 258776#L26 call #t~ret0 := fact(~n - 1);< 258995#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258991#factFINAL assume true; 258980#factEXIT >#66#return; 258988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259025#factFINAL assume true; 259019#factEXIT >#66#return; 259024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259087#factFINAL assume true; 259088#factEXIT >#66#return; 259083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259094#factFINAL assume true; 259080#factEXIT >#66#return; 259084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259039#factFINAL assume true; 259040#factEXIT >#70#return; 258867#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 259009#$Ultimate##0 ~n := #in~n; 258974#L25 assume ~n <= 0;#res := 1; 258817#factFINAL assume true; 258857#factEXIT >#72#return; 258855#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 258853#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 258847#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 258846#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 258843#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257891#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257478#$Ultimate##0 ~n := #in~n; 258813#L25 assume !(~n <= 0); 258785#L26 call #t~ret0 := fact(~n - 1);< 258799#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258762#factFINAL assume true; 258758#factEXIT >#74#return; 258753#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258761#$Ultimate##0 ~n := #in~n; 259002#L25 assume !(~n <= 0); 258770#L26 call #t~ret0 := fact(~n - 1);< 258923#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258760#factFINAL assume true; 258737#factEXIT >#76#return; 258741#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258924#$Ultimate##0 ~n := #in~n; 259017#L25 assume !(~n <= 0); 258775#L26 call #t~ret0 := fact(~n - 1);< 258781#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258760#factFINAL assume true; 258737#factEXIT >#78#return; 257517#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257518#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 259041#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 259032#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 259031#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257892#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257478#$Ultimate##0 ~n := #in~n; 258813#L25 assume !(~n <= 0); 258785#L26 call #t~ret0 := fact(~n - 1);< 258799#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258806#factFINAL assume true; 258782#factEXIT >#74#return; 258755#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258761#$Ultimate##0 ~n := #in~n; 259002#L25 assume !(~n <= 0); 258770#L26 call #t~ret0 := fact(~n - 1);< 258923#$Ultimate##0 ~n := #in~n; 259078#L25 assume !(~n <= 0); 258791#L26 call #t~ret0 := fact(~n - 1);< 258967#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258762#factFINAL assume true; 258758#factEXIT >#76#return; 258746#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258764#$Ultimate##0 ~n := #in~n; 258965#L25 assume !(~n <= 0); 258771#L26 call #t~ret0 := fact(~n - 1);< 258798#$Ultimate##0 ~n := #in~n; 258842#L25 assume !(~n <= 0); 258821#L26 call #t~ret0 := fact(~n - 1);< 258822#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258762#factFINAL assume true; 258758#factEXIT >#78#return; 258759#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257535#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257536#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 259241#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 259240#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257567#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 257478#$Ultimate##0 ~n := #in~n; 258813#L25 assume !(~n <= 0); 258785#L26 call #t~ret0 := fact(~n - 1);< 258799#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 259012#L25 assume !(~n <= 0); 258788#L26 call #t~ret0 := fact(~n - 1);< 258994#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258966#factFINAL assume true; 258826#factEXIT >#66#return; 258815#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258806#factFINAL assume true; 258782#factEXIT >#74#return; 258742#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 258761#$Ultimate##0 ~n := #in~n; 259002#L25 assume !(~n <= 0); 258770#L26 call #t~ret0 := fact(~n - 1);< 258923#$Ultimate##0 ~n := #in~n; 258814#L25 assume ~n <= 0;#res := 1; 258800#factFINAL assume true; 258767#factEXIT >#66#return; 258765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258760#factFINAL assume true; 258737#factEXIT >#76#return; 258757#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 258783#$Ultimate##0 ~n := #in~n; 259011#L25 assume !(~n <= 0); 258832#L26 call #t~ret0 := fact(~n - 1);< 258960#$Ultimate##0 ~n := #in~n; 258968#L25 assume !(~n <= 0); 258790#L26 call #t~ret0 := fact(~n - 1);< 258851#$Ultimate##0 ~n := #in~n; 258849#L25 assume !(~n <= 0); 258792#L26 call #t~ret0 := fact(~n - 1);< 258845#$Ultimate##0 ~n := #in~n; 258825#L25 assume ~n <= 0;#res := 1; 258824#factFINAL assume true; 258820#factEXIT >#66#return; 258818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258807#factFINAL assume true; 258784#factEXIT >#66#return; 258795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 258959#factFINAL assume true; 258955#factEXIT >#66#return; 258957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 259100#factFINAL assume true; 259095#factEXIT >#78#return; 257573#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 257572#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 257569#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 257568#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 257566#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 257475#L30-5 [2023-02-17 09:41:59,963 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:41:59,963 INFO L85 PathProgramCache]: Analyzing trace with hash -338971994, now seen corresponding path program 19 times [2023-02-17 09:41:59,963 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:41:59,963 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1425237969] [2023-02-17 09:41:59,963 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:41:59,964 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:00,019 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:00,019 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1438149127] [2023-02-17 09:42:00,019 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:00,019 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:00,020 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:00,024 INFO L229 MonitoredProcess]: Starting monitored process 187 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:00,025 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (187)] Waiting until timeout for monitored process [2023-02-17 09:42:00,477 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:00,481 INFO L263 TraceCheckSpWp]: Trace formula consists of 1129 conjuncts, 13 conjunts are in the unsatisfiable core [2023-02-17 09:42:00,484 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:00,517 INFO L134 CoverageAnalysis]: Checked inductivity of 14963 backedges. 5371 proven. 9 refuted. 0 times theorem prover too weak. 9583 trivial. 0 not checked. [2023-02-17 09:42:00,518 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:00,587 INFO L134 CoverageAnalysis]: Checked inductivity of 14963 backedges. 323 proven. 726 refuted. 0 times theorem prover too weak. 13914 trivial. 0 not checked. [2023-02-17 09:42:00,587 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:00,587 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1425237969] [2023-02-17 09:42:00,587 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:00,587 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1438149127] [2023-02-17 09:42:00,588 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1438149127] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:00,588 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:00,588 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 14 [2023-02-17 09:42:00,588 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1081046622] [2023-02-17 09:42:00,588 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:00,588 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:00,589 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:00,589 INFO L85 PathProgramCache]: Analyzing trace with hash -1251815907, now seen corresponding path program 13 times [2023-02-17 09:42:00,589 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:00,589 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1436271092] [2023-02-17 09:42:00,589 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:00,589 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:00,601 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:00,602 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [368930501] [2023-02-17 09:42:00,602 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:00,602 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:00,602 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:00,604 INFO L229 MonitoredProcess]: Starting monitored process 188 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:00,605 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (188)] Waiting until timeout for monitored process [2023-02-17 09:42:01,017 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:01,021 INFO L263 TraceCheckSpWp]: Trace formula consists of 1193 conjuncts, 23 conjunts are in the unsatisfiable core [2023-02-17 09:42:01,025 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:01,082 INFO L134 CoverageAnalysis]: Checked inductivity of 20827 backedges. 4882 proven. 185 refuted. 0 times theorem prover too weak. 15760 trivial. 0 not checked. [2023-02-17 09:42:01,082 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:01,302 INFO L134 CoverageAnalysis]: Checked inductivity of 20827 backedges. 58 proven. 3633 refuted. 0 times theorem prover too weak. 17136 trivial. 0 not checked. [2023-02-17 09:42:01,303 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:01,303 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1436271092] [2023-02-17 09:42:01,303 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:01,303 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [368930501] [2023-02-17 09:42:01,303 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [368930501] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:01,303 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:01,303 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 22] total 25 [2023-02-17 09:42:01,304 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2113504578] [2023-02-17 09:42:01,304 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:01,304 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:01,304 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:01,305 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2023-02-17 09:42:01,305 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=139, Unknown=0, NotChecked=0, Total=182 [2023-02-17 09:42:01,305 INFO L87 Difference]: Start difference. First operand 2143 states and 3657 transitions. cyclomatic complexity: 1539 Second operand has 14 states, 13 states have (on average 4.384615384615385) internal successors, (57), 14 states have internal predecessors, (57), 9 states have call successors, (27), 2 states have call predecessors, (27), 5 states have return successors, (28), 7 states have call predecessors, (28), 9 states have call successors, (28) [2023-02-17 09:42:01,607 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:01,607 INFO L93 Difference]: Finished difference Result 2182 states and 4001 transitions. [2023-02-17 09:42:01,607 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2182 states and 4001 transitions. [2023-02-17 09:42:01,618 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 297 [2023-02-17 09:42:01,629 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2182 states to 2182 states and 4000 transitions. [2023-02-17 09:42:01,629 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 308 [2023-02-17 09:42:01,629 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 308 [2023-02-17 09:42:01,629 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2182 states and 4000 transitions. [2023-02-17 09:42:01,630 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:01,630 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2182 states and 4000 transitions. [2023-02-17 09:42:01,630 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2182 states and 4000 transitions. [2023-02-17 09:42:01,654 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2182 to 2130. [2023-02-17 09:42:01,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2130 states, 1323 states have (on average 1.0453514739229024) internal successors, (1383), 1307 states have internal predecessors, (1383), 491 states have call successors, (524), 318 states have call predecessors, (524), 316 states have return successors, (1862), 504 states have call predecessors, (1862), 491 states have call successors, (1862) [2023-02-17 09:42:01,661 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2130 states to 2130 states and 3769 transitions. [2023-02-17 09:42:01,661 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2130 states and 3769 transitions. [2023-02-17 09:42:01,661 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-17 09:42:01,662 INFO L428 stractBuchiCegarLoop]: Abstraction has 2130 states and 3769 transitions. [2023-02-17 09:42:01,662 INFO L335 stractBuchiCegarLoop]: ======== Iteration 43 ============ [2023-02-17 09:42:01,662 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2130 states and 3769 transitions. [2023-02-17 09:42:01,667 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 245 [2023-02-17 09:42:01,667 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:01,667 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:01,670 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [78, 78, 48, 48, 48, 48, 30, 11, 10, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:01,670 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [93, 93, 72, 72, 72, 72, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:01,671 INFO L748 eck$LassoCheckResult]: Stem: 268290#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 268244#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 268245#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 268261#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 268253#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 268254#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268880#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268878#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268879#$Ultimate##0 ~n := #in~n; 268882#L25 assume ~n <= 0;#res := 1; 268881#factFINAL assume true; 268877#factEXIT >#68#return; 268827#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268828#$Ultimate##0 ~n := #in~n; 268870#L25 assume ~n <= 0;#res := 1; 268869#factFINAL assume true; 268826#factEXIT >#70#return; 268824#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268825#$Ultimate##0 ~n := #in~n; 268876#L25 assume ~n <= 0;#res := 1; 268875#factFINAL assume true; 268823#factEXIT >#72#return; 268821#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268819#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 268818#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268816#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268814#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268802#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268803#$Ultimate##0 ~n := #in~n; 269061#L25 assume !(~n <= 0); 268808#L26 call #t~ret0 := fact(~n - 1);< 268810#$Ultimate##0 ~n := #in~n; 268837#L25 assume ~n <= 0;#res := 1; 268834#factFINAL assume true; 268806#factEXIT >#66#return; 268809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268813#factFINAL assume true; 268801#factEXIT >#74#return; 268797#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268798#$Ultimate##0 ~n := #in~n; 268812#L25 assume ~n <= 0;#res := 1; 268800#factFINAL assume true; 268796#factEXIT >#76#return; 268792#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268793#$Ultimate##0 ~n := #in~n; 268842#L25 assume !(~n <= 0); 268807#L26 call #t~ret0 := fact(~n - 1);< 268810#$Ultimate##0 ~n := #in~n; 268837#L25 assume ~n <= 0;#res := 1; 268834#factFINAL assume true; 268806#factEXIT >#66#return; 268799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268795#factFINAL assume true; 268791#factEXIT >#78#return; 268789#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268787#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268786#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268785#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268783#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268739#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268640#$Ultimate##0 ~n := #in~n; 268752#L25 assume !(~n <= 0); 268682#L26 call #t~ret0 := fact(~n - 1);< 268747#$Ultimate##0 ~n := #in~n; 268778#L25 assume !(~n <= 0); 268675#L26 call #t~ret0 := fact(~n - 1);< 268773#$Ultimate##0 ~n := #in~n; 268784#L25 assume ~n <= 0;#res := 1; 268781#factFINAL assume true; 268771#factEXIT >#66#return; 268770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268763#factFINAL assume true; 268756#factEXIT >#66#return; 268759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268782#factFINAL assume true; 268780#factEXIT >#74#return; 268769#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268733#$Ultimate##0 ~n := #in~n; 268777#L25 assume ~n <= 0;#res := 1; 268776#factFINAL assume true; 268768#factEXIT >#76#return; 268761#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268762#$Ultimate##0 ~n := #in~n; 268765#L25 assume !(~n <= 0); 268757#L26 call #t~ret0 := fact(~n - 1);< 268764#$Ultimate##0 ~n := #in~n; 268788#L25 assume !(~n <= 0); 268772#L26 call #t~ret0 := fact(~n - 1);< 268774#$Ultimate##0 ~n := #in~n; 268784#L25 assume ~n <= 0;#res := 1; 268781#factFINAL assume true; 268771#factEXIT >#66#return; 268770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268763#factFINAL assume true; 268756#factEXIT >#66#return; 268758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268767#factFINAL assume true; 268760#factEXIT >#78#return; 268755#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268753#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268748#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268744#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268742#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268738#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268640#$Ultimate##0 ~n := #in~n; 268752#L25 assume !(~n <= 0); 268682#L26 call #t~ret0 := fact(~n - 1);< 268747#$Ultimate##0 ~n := #in~n; 268778#L25 assume !(~n <= 0); 268675#L26 call #t~ret0 := fact(~n - 1);< 268773#$Ultimate##0 ~n := #in~n; 268778#L25 assume !(~n <= 0); 268675#L26 call #t~ret0 := fact(~n - 1);< 268773#$Ultimate##0 ~n := #in~n; 268784#L25 assume ~n <= 0;#res := 1; 268781#factFINAL assume true; 268771#factEXIT >#66#return; 268770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268763#factFINAL assume true; 268756#factEXIT >#66#return; 268754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268749#factFINAL assume true; 268745#factEXIT >#66#return; 268743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268741#factFINAL assume true; 268737#factEXIT >#74#return; 268727#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268732#$Ultimate##0 ~n := #in~n; 269755#L25 assume ~n <= 0;#res := 1; 269736#factFINAL assume true; 269724#factEXIT >#76#return; 269719#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 269969#$Ultimate##0 ~n := #in~n; 269965#L25 assume !(~n <= 0); 268665#L26 call #t~ret0 := fact(~n - 1);< 269984#$Ultimate##0 ~n := #in~n; 270000#L25 assume !(~n <= 0); 268663#L26 call #t~ret0 := fact(~n - 1);< 269954#$Ultimate##0 ~n := #in~n; 269999#L25 assume !(~n <= 0); 268661#L26 call #t~ret0 := fact(~n - 1);< 269995#$Ultimate##0 ~n := #in~n; 269998#L25 assume ~n <= 0;#res := 1; 269997#factFINAL assume true; 269994#factEXIT >#66#return; 269992#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269991#factFINAL assume true; 269990#factEXIT >#66#return; 269986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269987#factFINAL assume true; 269988#factEXIT >#66#return; 268667#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270005#factFINAL assume true; 270001#factEXIT >#78#return; 268538#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268533#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268531#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268527#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268525#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268526#$Ultimate##0 ~n := #in~n; 268539#L25 assume !(~n <= 0); 268536#L26 call #t~ret0 := fact(~n - 1);< 268537#$Ultimate##0 ~n := #in~n; 268556#L25 assume !(~n <= 0); 268535#L26 call #t~ret0 := fact(~n - 1);< 268555#$Ultimate##0 ~n := #in~n; 268556#L25 assume !(~n <= 0); 268535#L26 call #t~ret0 := fact(~n - 1);< 268555#$Ultimate##0 ~n := #in~n; 268556#L25 assume !(~n <= 0); 268535#L26 call #t~ret0 := fact(~n - 1);< 268555#$Ultimate##0 ~n := #in~n; 268556#L25 assume !(~n <= 0); 268535#L26 call #t~ret0 := fact(~n - 1);< 268555#$Ultimate##0 ~n := #in~n; 268556#L25 assume !(~n <= 0); 268535#L26 call #t~ret0 := fact(~n - 1);< 268555#$Ultimate##0 ~n := #in~n; 268556#L25 assume !(~n <= 0); 268535#L26 call #t~ret0 := fact(~n - 1);< 268555#$Ultimate##0 ~n := #in~n; 268573#L25 assume ~n <= 0;#res := 1; 268572#factFINAL assume true; 268571#factEXIT >#66#return; 268570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268569#factFINAL assume true; 268568#factEXIT >#66#return; 268567#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268566#factFINAL assume true; 268565#factEXIT >#66#return; 268564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268563#factFINAL assume true; 268562#factEXIT >#66#return; 268561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268560#factFINAL assume true; 268559#factEXIT >#66#return; 268558#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268557#factFINAL assume true; 268554#factEXIT >#66#return; 268552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268549#factFINAL assume true; 268534#factEXIT >#66#return; 268532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268530#factFINAL assume true; 268524#factEXIT >#74#return; 268522#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268523#$Ultimate##0 ~n := #in~n; 268551#L25 assume ~n <= 0;#res := 1; 268548#factFINAL assume true; 268521#factEXIT >#76#return; 268339#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268340#$Ultimate##0 ~n := #in~n; 269057#L25 assume !(~n <= 0); 268353#L26 call #t~ret0 := fact(~n - 1);< 268372#$Ultimate##0 ~n := #in~n; 268519#L25 assume !(~n <= 0); 268362#L26 call #t~ret0 := fact(~n - 1);< 268385#$Ultimate##0 ~n := #in~n; 268408#L25 assume !(~n <= 0); 268354#L26 call #t~ret0 := fact(~n - 1);< 268390#$Ultimate##0 ~n := #in~n; 268411#L25 assume !(~n <= 0); 268356#L26 call #t~ret0 := fact(~n - 1);< 268395#$Ultimate##0 ~n := #in~n; 268511#L25 assume !(~n <= 0); 268363#L26 call #t~ret0 := fact(~n - 1);< 268399#$Ultimate##0 ~n := #in~n; 268512#L25 assume !(~n <= 0); 268361#L26 call #t~ret0 := fact(~n - 1);< 268461#$Ultimate##0 ~n := #in~n; 268472#L25 assume !(~n <= 0); 268360#L26 call #t~ret0 := fact(~n - 1);< 268469#$Ultimate##0 ~n := #in~n; 268483#L25 assume ~n <= 0;#res := 1; 268480#factFINAL assume true; 268468#factEXIT >#66#return; 268467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268466#factFINAL assume true; 268460#factEXIT >#66#return; 268458#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268451#factFINAL assume true; 268407#factEXIT >#66#return; 268403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268397#factFINAL assume true; 268394#factEXIT >#66#return; 268392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268391#factFINAL assume true; 268389#factEXIT >#66#return; 268388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268386#factFINAL assume true; 268383#factEXIT >#66#return; 268382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268377#factFINAL assume true; 268375#factEXIT >#66#return; 268365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268550#factFINAL assume true; 268515#factEXIT >#78#return; 268334#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 269191#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 269190#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 269189#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 269188#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 269187#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 269186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268264#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268265#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 269169#$Ultimate##0 ~n := #in~n; 269199#L25 assume !(~n <= 0); 269196#L26 call #t~ret0 := fact(~n - 1);< 269197#$Ultimate##0 ~n := #in~n; 269202#L25 assume ~n <= 0;#res := 1; 269200#factFINAL assume true; 269195#factEXIT >#66#return; 269194#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269193#factFINAL assume true; 269168#factEXIT >#68#return; 269072#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268279#$Ultimate##0 ~n := #in~n; 269154#L25 assume ~n <= 0;#res := 1; 269152#factFINAL assume true; 269066#factEXIT >#70#return; 269064#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 269065#$Ultimate##0 ~n := #in~n; 269149#L25 assume !(~n <= 0); 268218#L26 call #t~ret0 := fact(~n - 1);< 269147#$Ultimate##0 ~n := #in~n; 269153#L25 assume ~n <= 0;#res := 1; 269151#factFINAL assume true; 269146#factEXIT >#66#return; 269145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269144#factFINAL assume true; 269063#factEXIT >#72#return; 269062#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 269060#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 269059#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 269058#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 269056#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 269002#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 269047#$Ultimate##0 ~n := #in~n; 269224#L25 assume !(~n <= 0); 268934#L26 call #t~ret0 := fact(~n - 1);< 269129#$Ultimate##0 ~n := #in~n; 268992#L25 assume ~n <= 0;#res := 1; 268958#factFINAL assume true; 268926#factEXIT >#66#return; 268939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269053#factFINAL assume true; 269044#factEXIT >#68#return; 269019#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 269043#$Ultimate##0 ~n := #in~n; 269244#L25 assume !(~n <= 0); 268930#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 268992#L25 assume ~n <= 0;#res := 1; 268958#factFINAL assume true; 268926#factEXIT >#66#return; 268939#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269053#factFINAL assume true; 269044#factEXIT >#70#return; 268968#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268985#$Ultimate##0 ~n := #in~n; 268999#L25 assume ~n <= 0;#res := 1; 268995#factFINAL assume true; 268964#factEXIT >#72#return; 268963#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268957#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 268956#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268925#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268921#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268309#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268920#$Ultimate##0 ~n := #in~n; 269226#L25 assume !(~n <= 0); 268935#L26 call #t~ret0 := fact(~n - 1);< 269129#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268919#factFINAL assume true; 268888#factEXIT >#74#return; 268900#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268918#$Ultimate##0 ~n := #in~n; 269201#L25 assume !(~n <= 0); 268929#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 268992#L25 assume ~n <= 0;#res := 1; 268958#factFINAL assume true; 268926#factEXIT >#66#return; 268923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268917#factFINAL assume true; 268907#factEXIT >#76#return; 268293#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268294#$Ultimate##0 ~n := #in~n; 269249#L25 assume !(~n <= 0); 268936#L26 call #t~ret0 := fact(~n - 1);< 268940#$Ultimate##0 ~n := #in~n; 268992#L25 assume ~n <= 0;#res := 1; 268958#factFINAL assume true; 268926#factEXIT >#66#return; 268923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268917#factFINAL assume true; 268907#factEXIT >#78#return; 268248#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268249#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268263#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 269251#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 269250#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268303#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268210#$Ultimate##0 ~n := #in~n; 269239#L25 assume !(~n <= 0); 268948#L26 call #t~ret0 := fact(~n - 1);< 268989#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269054#factFINAL assume true; 268991#factEXIT >#74#return; 268898#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268918#$Ultimate##0 ~n := #in~n; 269201#L25 assume !(~n <= 0); 268929#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 268992#L25 assume ~n <= 0;#res := 1; 268958#factFINAL assume true; 268926#factEXIT >#66#return; 268923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268917#factFINAL assume true; 268907#factEXIT >#76#return; 268895#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268910#$Ultimate##0 ~n := #in~n; 269252#L25 assume !(~n <= 0); 268937#L26 call #t~ret0 := fact(~n - 1);< 268955#$Ultimate##0 ~n := #in~n; 269108#L25 assume !(~n <= 0); 269105#L26 call #t~ret0 := fact(~n - 1);< 269107#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268919#factFINAL assume true; 268888#factEXIT >#78#return; 268905#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 269077#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268997#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268993#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268296#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268210#$Ultimate##0 ~n := #in~n; 269239#L25 assume !(~n <= 0); 268948#L26 call #t~ret0 := fact(~n - 1);< 268989#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269086#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269051#factFINAL assume true; 269050#factEXIT >#74#return; 268904#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268918#$Ultimate##0 ~n := #in~n; 269201#L25 assume !(~n <= 0); 268929#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 268992#L25 assume ~n <= 0;#res := 1; 268958#factFINAL assume true; 268926#factEXIT >#66#return; 268923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268917#factFINAL assume true; 268907#factEXIT >#76#return; 268906#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 269055#$Ultimate##0 ~n := #in~n; 269198#L25 assume !(~n <= 0); 269097#L26 call #t~ret0 := fact(~n - 1);< 269103#$Ultimate##0 ~n := #in~n; 269246#L25 assume !(~n <= 0); 268942#L26 call #t~ret0 := fact(~n - 1);< 269148#$Ultimate##0 ~n := #in~n; 269131#L25 assume !(~n <= 0); 268945#L26 call #t~ret0 := fact(~n - 1);< 269110#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269054#factFINAL assume true; 268991#factEXIT >#78#return; 268300#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268299#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268295#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268207#L30-5 [2023-02-17 09:42:01,671 INFO L750 eck$LassoCheckResult]: Loop: 268207#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268208#$Ultimate##0 ~n := #in~n; 270176#L25 assume !(~n <= 0); 270090#L26 call #t~ret0 := fact(~n - 1);< 270110#$Ultimate##0 ~n := #in~n; 270173#L25 assume !(~n <= 0); 270086#L26 call #t~ret0 := fact(~n - 1);< 270168#$Ultimate##0 ~n := #in~n; 270173#L25 assume !(~n <= 0); 270086#L26 call #t~ret0 := fact(~n - 1);< 270168#$Ultimate##0 ~n := #in~n; 270173#L25 assume !(~n <= 0); 270086#L26 call #t~ret0 := fact(~n - 1);< 270168#$Ultimate##0 ~n := #in~n; 270173#L25 assume !(~n <= 0); 270086#L26 call #t~ret0 := fact(~n - 1);< 270168#$Ultimate##0 ~n := #in~n; 270181#L25 assume ~n <= 0;#res := 1; 270180#factFINAL assume true; 270166#factEXIT >#66#return; 270164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270162#factFINAL assume true; 270157#factEXIT >#66#return; 270155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270151#factFINAL assume true; 270143#factEXIT >#66#return; 270146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270187#factFINAL assume true; 270085#factEXIT >#66#return; 270097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270130#factFINAL assume true; 270123#factEXIT >#66#return; 270119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270113#factFINAL assume true; 270074#factEXIT >#74#return; 268324#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268286#$Ultimate##0 ~n := #in~n; 270135#L25 assume !(~n <= 0); 270087#L26 call #t~ret0 := fact(~n - 1);< 270125#$Ultimate##0 ~n := #in~n; 270137#L25 assume ~n <= 0;#res := 1; 270136#factFINAL assume true; 270127#factEXIT >#66#return; 270126#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270120#factFINAL assume true; 270114#factEXIT >#76#return; 268327#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 270178#$Ultimate##0 ~n := #in~n; 270177#L25 assume !(~n <= 0); 270095#L26 call #t~ret0 := fact(~n - 1);< 270175#$Ultimate##0 ~n := #in~n; 270174#L25 assume !(~n <= 0); 270144#L26 call #t~ret0 := fact(~n - 1);< 270152#$Ultimate##0 ~n := #in~n; 270165#L25 assume !(~n <= 0); 270158#L26 call #t~ret0 := fact(~n - 1);< 270160#$Ultimate##0 ~n := #in~n; 270181#L25 assume ~n <= 0;#res := 1; 270180#factFINAL assume true; 270166#factEXIT >#66#return; 270164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270162#factFINAL assume true; 270157#factEXIT >#66#return; 270155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270151#factFINAL assume true; 270143#factEXIT >#66#return; 270142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270129#factFINAL assume true; 268322#factEXIT >#78#return; 268246#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268247#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268262#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268289#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 268255#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 268256#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 268270#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268271#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268240#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268241#$Ultimate##0 ~n := #in~n; 269573#L25 assume !(~n <= 0); 269570#L26 call #t~ret0 := fact(~n - 1);< 269572#$Ultimate##0 ~n := #in~n; 269203#L25 assume !(~n <= 0); 269569#L26 call #t~ret0 := fact(~n - 1);< 269579#$Ultimate##0 ~n := #in~n; 269203#L25 assume !(~n <= 0); 269569#L26 call #t~ret0 := fact(~n - 1);< 269579#$Ultimate##0 ~n := #in~n; 269203#L25 assume !(~n <= 0); 269569#L26 call #t~ret0 := fact(~n - 1);< 269579#$Ultimate##0 ~n := #in~n; 269203#L25 assume !(~n <= 0); 269569#L26 call #t~ret0 := fact(~n - 1);< 269579#$Ultimate##0 ~n := #in~n; 269203#L25 assume !(~n <= 0); 269569#L26 call #t~ret0 := fact(~n - 1);< 269579#$Ultimate##0 ~n := #in~n; 269580#L25 assume ~n <= 0;#res := 1; 269596#factFINAL assume true; 269595#factEXIT >#66#return; 269594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269592#factFINAL assume true; 269568#factEXIT >#66#return; 269571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269593#factFINAL assume true; 269591#factEXIT >#66#return; 269590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269589#factFINAL assume true; 269587#factEXIT >#66#return; 269586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269585#factFINAL assume true; 269582#factEXIT >#66#return; 269583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270270#factFINAL assume true; 270269#factEXIT >#66#return; 270268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270267#factFINAL assume true; 270264#factEXIT >#68#return; 269068#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 269169#$Ultimate##0 ~n := #in~n; 269199#L25 assume ~n <= 0;#res := 1; 269152#factFINAL assume true; 269066#factEXIT >#70#return; 268231#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268232#$Ultimate##0 ~n := #in~n; 270215#L25 assume !(~n <= 0); 268225#L26 call #t~ret0 := fact(~n - 1);< 270211#$Ultimate##0 ~n := #in~n; 270210#L25 assume !(~n <= 0); 268220#L26 call #t~ret0 := fact(~n - 1);< 270209#$Ultimate##0 ~n := #in~n; 270208#L25 assume !(~n <= 0); 268212#L26 call #t~ret0 := fact(~n - 1);< 270205#$Ultimate##0 ~n := #in~n; 270203#L25 assume !(~n <= 0); 268217#L26 call #t~ret0 := fact(~n - 1);< 270200#$Ultimate##0 ~n := #in~n; 270198#L25 assume !(~n <= 0); 268215#L26 call #t~ret0 := fact(~n - 1);< 270196#$Ultimate##0 ~n := #in~n; 269155#L25 assume !(~n <= 0); 268223#L26 call #t~ret0 := fact(~n - 1);< 270193#$Ultimate##0 ~n := #in~n; 269155#L25 assume !(~n <= 0); 268223#L26 call #t~ret0 := fact(~n - 1);< 270193#$Ultimate##0 ~n := #in~n; 269155#L25 assume !(~n <= 0); 268223#L26 call #t~ret0 := fact(~n - 1);< 270193#$Ultimate##0 ~n := #in~n; 270194#L25 assume ~n <= 0;#res := 1; 270244#factFINAL assume true; 270234#factEXIT >#66#return; 270232#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270231#factFINAL assume true; 270225#factEXIT >#66#return; 270226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270230#factFINAL assume true; 270228#factEXIT >#66#return; 270224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270223#factFINAL assume true; 270221#factEXIT >#66#return; 270222#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270335#factFINAL assume true; 270334#factEXIT >#66#return; 270332#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270331#factFINAL assume true; 270327#factEXIT >#66#return; 270328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270333#factFINAL assume true; 270330#factEXIT >#66#return; 268226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268236#factFINAL assume true; 268211#factEXIT >#66#return; 268227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 270336#factFINAL assume true; 270320#factEXIT >#72#return; 268257#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268258#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 269275#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 269273#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 269271#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 269003#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 269228#$Ultimate##0 ~n := #in~n; 269232#L25 assume !(~n <= 0); 268946#L26 call #t~ret0 := fact(~n - 1);< 268989#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268953#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269235#factFINAL assume true; 269001#factEXIT >#68#return; 269006#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 269043#$Ultimate##0 ~n := #in~n; 269244#L25 assume !(~n <= 0); 268930#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 269234#L25 assume !(~n <= 0); 268943#L26 call #t~ret0 := fact(~n - 1);< 269176#$Ultimate##0 ~n := #in~n; 269236#L25 assume !(~n <= 0); 268947#L26 call #t~ret0 := fact(~n - 1);< 269106#$Ultimate##0 ~n := #in~n; 269131#L25 assume !(~n <= 0); 268945#L26 call #t~ret0 := fact(~n - 1);< 269110#$Ultimate##0 ~n := #in~n; 269108#L25 assume !(~n <= 0); 269105#L26 call #t~ret0 := fact(~n - 1);< 269107#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269204#factFINAL assume true; 269161#factEXIT >#66#return; 269163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269248#factFINAL assume true; 269247#factEXIT >#70#return; 268980#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268985#$Ultimate##0 ~n := #in~n; 268999#L25 assume ~n <= 0;#res := 1; 268995#factFINAL assume true; 268964#factEXIT >#72#return; 268984#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 269266#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 269264#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 269262#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 269260#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 269030#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 269228#$Ultimate##0 ~n := #in~n; 269232#L25 assume !(~n <= 0); 268946#L26 call #t~ret0 := fact(~n - 1);< 268989#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269229#factFINAL assume true; 269227#factEXIT >#68#return; 269028#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 269043#$Ultimate##0 ~n := #in~n; 269244#L25 assume !(~n <= 0); 268930#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 269234#L25 assume !(~n <= 0); 268943#L26 call #t~ret0 := fact(~n - 1);< 269176#$Ultimate##0 ~n := #in~n; 269236#L25 assume !(~n <= 0); 268947#L26 call #t~ret0 := fact(~n - 1);< 269106#$Ultimate##0 ~n := #in~n; 269131#L25 assume !(~n <= 0); 268945#L26 call #t~ret0 := fact(~n - 1);< 269110#$Ultimate##0 ~n := #in~n; 269108#L25 assume !(~n <= 0); 269105#L26 call #t~ret0 := fact(~n - 1);< 269107#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269204#factFINAL assume true; 269161#factEXIT >#66#return; 269163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269248#factFINAL assume true; 269247#factEXIT >#70#return; 268960#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 269000#$Ultimate##0 ~n := #in~n; 268998#L25 assume ~n <= 0;#res := 1; 268995#factFINAL assume true; 268964#factEXIT >#72#return; 268982#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 269259#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 269258#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 269257#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 269256#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268209#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268210#$Ultimate##0 ~n := #in~n; 269239#L25 assume !(~n <= 0); 268948#L26 call #t~ret0 := fact(~n - 1);< 268989#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269054#factFINAL assume true; 268991#factEXIT >#74#return; 268891#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268918#$Ultimate##0 ~n := #in~n; 269201#L25 assume !(~n <= 0); 268929#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 269234#L25 assume !(~n <= 0); 268943#L26 call #t~ret0 := fact(~n - 1);< 269176#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268919#factFINAL assume true; 268888#factEXIT >#76#return; 268894#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268910#$Ultimate##0 ~n := #in~n; 269252#L25 assume !(~n <= 0); 268937#L26 call #t~ret0 := fact(~n - 1);< 268955#$Ultimate##0 ~n := #in~n; 268992#L25 assume ~n <= 0;#res := 1; 268958#factFINAL assume true; 268926#factEXIT >#66#return; 268923#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268917#factFINAL assume true; 268907#factEXIT >#78#return; 268909#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 269087#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 269085#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 269083#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 269082#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268307#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268210#$Ultimate##0 ~n := #in~n; 269239#L25 assume !(~n <= 0); 268948#L26 call #t~ret0 := fact(~n - 1);< 268989#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269204#factFINAL assume true; 269161#factEXIT >#66#return; 269165#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269222#factFINAL assume true; 269218#factEXIT >#66#return; 269217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269158#factFINAL assume true; 269113#factEXIT >#66#return; 269112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269109#factFINAL assume true; 269080#factEXIT >#74#return; 268308#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268920#$Ultimate##0 ~n := #in~n; 269226#L25 assume !(~n <= 0); 268935#L26 call #t~ret0 := fact(~n - 1);< 269129#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269204#factFINAL assume true; 269161#factEXIT >#66#return; 269157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269156#factFINAL assume true; 269078#factEXIT >#76#return; 268306#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268920#$Ultimate##0 ~n := #in~n; 269226#L25 assume !(~n <= 0); 268935#L26 call #t~ret0 := fact(~n - 1);< 269129#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268919#factFINAL assume true; 268888#factEXIT >#78#return; 268905#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 269077#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268997#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268993#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268296#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 268210#$Ultimate##0 ~n := #in~n; 269239#L25 assume !(~n <= 0); 268948#L26 call #t~ret0 := fact(~n - 1);< 268989#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269216#L25 assume !(~n <= 0); 268949#L26 call #t~ret0 := fact(~n - 1);< 269160#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269204#factFINAL assume true; 269161#factEXIT >#66#return; 269157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269156#factFINAL assume true; 269078#factEXIT >#74#return; 268902#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 268918#$Ultimate##0 ~n := #in~n; 269201#L25 assume !(~n <= 0); 268929#L26 call #t~ret0 := fact(~n - 1);< 269138#$Ultimate##0 ~n := #in~n; 269234#L25 assume !(~n <= 0); 268943#L26 call #t~ret0 := fact(~n - 1);< 269176#$Ultimate##0 ~n := #in~n; 269236#L25 assume !(~n <= 0); 268947#L26 call #t~ret0 := fact(~n - 1);< 269106#$Ultimate##0 ~n := #in~n; 269131#L25 assume !(~n <= 0); 268945#L26 call #t~ret0 := fact(~n - 1);< 269110#$Ultimate##0 ~n := #in~n; 269108#L25 assume !(~n <= 0); 269105#L26 call #t~ret0 := fact(~n - 1);< 269107#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269175#factFINAL assume true; 269088#factEXIT >#66#return; 269099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269204#factFINAL assume true; 269161#factEXIT >#66#return; 269157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269156#factFINAL assume true; 269078#factEXIT >#76#return; 268901#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 268922#$Ultimate##0 ~n := #in~n; 269185#L25 assume !(~n <= 0); 268931#L26 call #t~ret0 := fact(~n - 1);< 269102#$Ultimate##0 ~n := #in~n; 269236#L25 assume !(~n <= 0); 268947#L26 call #t~ret0 := fact(~n - 1);< 269106#$Ultimate##0 ~n := #in~n; 269131#L25 assume !(~n <= 0); 268945#L26 call #t~ret0 := fact(~n - 1);< 269110#$Ultimate##0 ~n := #in~n; 269111#L25 assume ~n <= 0;#res := 1; 269192#factFINAL assume true; 269104#factEXIT >#66#return; 269048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 268986#factFINAL assume true; 268941#factEXIT >#66#return; 268952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269143#factFINAL assume true; 269139#factEXIT >#66#return; 269137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 269054#factFINAL assume true; 268991#factEXIT >#78#return; 268300#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 268299#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 268298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 268297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 268295#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 268207#L30-5 [2023-02-17 09:42:01,677 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:01,677 INFO L85 PathProgramCache]: Analyzing trace with hash 1688435710, now seen corresponding path program 20 times [2023-02-17 09:42:01,677 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:01,678 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [859634781] [2023-02-17 09:42:01,678 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:01,678 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:01,694 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:01,694 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1166269974] [2023-02-17 09:42:01,694 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:01,695 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:01,695 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:01,696 INFO L229 MonitoredProcess]: Starting monitored process 189 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:01,698 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (189)] Waiting until timeout for monitored process [2023-02-17 09:42:02,115 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:02,115 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:02,120 INFO L263 TraceCheckSpWp]: Trace formula consists of 1117 conjuncts, 18 conjunts are in the unsatisfiable core [2023-02-17 09:42:02,123 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:02,185 INFO L134 CoverageAnalysis]: Checked inductivity of 14555 backedges. 7700 proven. 73 refuted. 0 times theorem prover too weak. 6782 trivial. 0 not checked. [2023-02-17 09:42:02,185 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:02,326 INFO L134 CoverageAnalysis]: Checked inductivity of 14555 backedges. 710 proven. 1069 refuted. 0 times theorem prover too weak. 12776 trivial. 0 not checked. [2023-02-17 09:42:02,326 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:02,326 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [859634781] [2023-02-17 09:42:02,326 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:02,326 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1166269974] [2023-02-17 09:42:02,327 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1166269974] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:02,327 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:02,327 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 18] total 19 [2023-02-17 09:42:02,327 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1700261633] [2023-02-17 09:42:02,327 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:02,328 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:02,328 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:02,328 INFO L85 PathProgramCache]: Analyzing trace with hash -92106683, now seen corresponding path program 14 times [2023-02-17 09:42:02,328 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:02,328 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1067771121] [2023-02-17 09:42:02,329 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:02,329 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:02,343 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:02,344 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1644257089] [2023-02-17 09:42:02,344 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:02,344 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:02,344 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:02,346 INFO L229 MonitoredProcess]: Starting monitored process 190 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:02,347 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (190)] Waiting until timeout for monitored process [2023-02-17 09:42:02,786 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:02,786 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:02,791 INFO L263 TraceCheckSpWp]: Trace formula consists of 1229 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-17 09:42:02,795 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:02,855 INFO L134 CoverageAnalysis]: Checked inductivity of 22339 backedges. 5091 proven. 168 refuted. 0 times theorem prover too weak. 17080 trivial. 0 not checked. [2023-02-17 09:42:02,855 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:03,066 INFO L134 CoverageAnalysis]: Checked inductivity of 22339 backedges. 69 proven. 4009 refuted. 0 times theorem prover too weak. 18261 trivial. 0 not checked. [2023-02-17 09:42:03,066 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:03,066 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1067771121] [2023-02-17 09:42:03,066 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:03,066 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1644257089] [2023-02-17 09:42:03,066 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1644257089] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:03,066 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:03,067 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 22] total 25 [2023-02-17 09:42:03,067 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [340617478] [2023-02-17 09:42:03,067 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:03,067 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:03,067 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:03,068 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2023-02-17 09:42:03,068 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=75, Invalid=267, Unknown=0, NotChecked=0, Total=342 [2023-02-17 09:42:03,068 INFO L87 Difference]: Start difference. First operand 2130 states and 3769 transitions. cyclomatic complexity: 1664 Second operand has 19 states, 18 states have (on average 3.9444444444444446) internal successors, (71), 19 states have internal predecessors, (71), 13 states have call successors, (33), 2 states have call predecessors, (33), 7 states have return successors, (36), 11 states have call predecessors, (36), 13 states have call successors, (36) [2023-02-17 09:42:03,679 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:03,679 INFO L93 Difference]: Finished difference Result 2514 states and 4976 transitions. [2023-02-17 09:42:03,679 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2514 states and 4976 transitions. [2023-02-17 09:42:03,695 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 457 [2023-02-17 09:42:03,712 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2514 states to 2482 states and 4920 transitions. [2023-02-17 09:42:03,713 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 328 [2023-02-17 09:42:03,713 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 328 [2023-02-17 09:42:03,713 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2482 states and 4920 transitions. [2023-02-17 09:42:03,713 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:03,713 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2482 states and 4920 transitions. [2023-02-17 09:42:03,714 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2482 states and 4920 transitions. [2023-02-17 09:42:03,753 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2482 to 2195. [2023-02-17 09:42:03,755 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2195 states, 1353 states have (on average 1.0465631929046564) internal successors, (1416), 1337 states have internal predecessors, (1416), 526 states have call successors, (560), 318 states have call predecessors, (560), 316 states have return successors, (2001), 539 states have call predecessors, (2001), 526 states have call successors, (2001) [2023-02-17 09:42:03,762 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2195 states to 2195 states and 3977 transitions. [2023-02-17 09:42:03,762 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2195 states and 3977 transitions. [2023-02-17 09:42:03,762 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-17 09:42:03,763 INFO L428 stractBuchiCegarLoop]: Abstraction has 2195 states and 3977 transitions. [2023-02-17 09:42:03,763 INFO L335 stractBuchiCegarLoop]: ======== Iteration 44 ============ [2023-02-17 09:42:03,763 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2195 states and 3977 transitions. [2023-02-17 09:42:03,768 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 287 [2023-02-17 09:42:03,768 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:03,768 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:03,772 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [69, 69, 39, 39, 39, 39, 30, 11, 10, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:03,772 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [77, 77, 56, 56, 56, 56, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:03,772 INFO L748 eck$LassoCheckResult]: Stem: 279435#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 279387#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 279388#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 279406#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 279398#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 279399#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280484#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280480#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280481#$Ultimate##0 ~n := #in~n; 280485#L25 assume ~n <= 0;#res := 1; 280483#factFINAL assume true; 280479#factEXIT >#68#return; 280476#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280477#$Ultimate##0 ~n := #in~n; 280482#L25 assume ~n <= 0;#res := 1; 280478#factFINAL assume true; 280475#factEXIT >#70#return; 280457#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280458#$Ultimate##0 ~n := #in~n; 280461#L25 assume ~n <= 0;#res := 1; 280460#factFINAL assume true; 280456#factEXIT >#72#return; 280453#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280451#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 280449#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280448#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280447#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280431#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280442#$Ultimate##0 ~n := #in~n; 280436#L25 assume !(~n <= 0); 280411#L26 call #t~ret0 := fact(~n - 1);< 280414#$Ultimate##0 ~n := #in~n; 280435#L25 assume ~n <= 0;#res := 1; 280430#factFINAL assume true; 280410#factEXIT >#66#return; 280413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280468#factFINAL assume true; 280467#factEXIT >#74#return; 280465#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280466#$Ultimate##0 ~n := #in~n; 280472#L25 assume ~n <= 0;#res := 1; 280471#factFINAL assume true; 280464#factEXIT >#76#return; 280404#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280405#$Ultimate##0 ~n := #in~n; 280419#L25 assume !(~n <= 0); 280412#L26 call #t~ret0 := fact(~n - 1);< 280414#$Ultimate##0 ~n := #in~n; 280435#L25 assume ~n <= 0;#res := 1; 280430#factFINAL assume true; 280410#factEXIT >#66#return; 280408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280407#factFINAL assume true; 280403#factEXIT >#78#return; 280399#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280394#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 280393#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280392#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280391#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280364#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280340#$Ultimate##0 ~n := #in~n; 280390#L25 assume !(~n <= 0); 280369#L26 call #t~ret0 := fact(~n - 1);< 280378#$Ultimate##0 ~n := #in~n; 280474#L25 assume !(~n <= 0); 280367#L26 call #t~ret0 := fact(~n - 1);< 280418#$Ultimate##0 ~n := #in~n; 280428#L25 assume ~n <= 0;#res := 1; 280427#factFINAL assume true; 280415#factEXIT >#66#return; 280409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280400#factFINAL assume true; 280366#factEXIT >#66#return; 280372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280376#factFINAL assume true; 280363#factEXIT >#74#return; 280352#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280355#$Ultimate##0 ~n := #in~n; 280374#L25 assume ~n <= 0;#res := 1; 280357#factFINAL assume true; 280350#factEXIT >#76#return; 280347#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280348#$Ultimate##0 ~n := #in~n; 280406#L25 assume !(~n <= 0); 280370#L26 call #t~ret0 := fact(~n - 1);< 280373#$Ultimate##0 ~n := #in~n; 280469#L25 assume !(~n <= 0); 280416#L26 call #t~ret0 := fact(~n - 1);< 280417#$Ultimate##0 ~n := #in~n; 280428#L25 assume ~n <= 0;#res := 1; 280427#factFINAL assume true; 280415#factEXIT >#66#return; 280409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280400#factFINAL assume true; 280366#factEXIT >#66#return; 280356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280349#factFINAL assume true; 280346#factEXIT >#78#return; 280345#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280344#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 280343#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280342#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280341#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280339#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280340#$Ultimate##0 ~n := #in~n; 280390#L25 assume !(~n <= 0); 280369#L26 call #t~ret0 := fact(~n - 1);< 280378#$Ultimate##0 ~n := #in~n; 280474#L25 assume !(~n <= 0); 280367#L26 call #t~ret0 := fact(~n - 1);< 280418#$Ultimate##0 ~n := #in~n; 280474#L25 assume !(~n <= 0); 280367#L26 call #t~ret0 := fact(~n - 1);< 280418#$Ultimate##0 ~n := #in~n; 280428#L25 assume ~n <= 0;#res := 1; 280427#factFINAL assume true; 280415#factEXIT >#66#return; 280409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280400#factFINAL assume true; 280366#factEXIT >#66#return; 280371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280426#factFINAL assume true; 280421#factEXIT >#66#return; 280420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280377#factFINAL assume true; 280375#factEXIT >#74#return; 280351#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280362#$Ultimate##0 ~n := #in~n; 280523#L25 assume ~n <= 0;#res := 1; 280522#factFINAL assume true; 280521#factEXIT >#76#return; 280438#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280441#$Ultimate##0 ~n := #in~n; 280440#L25 assume !(~n <= 0); 280385#L26 call #t~ret0 := fact(~n - 1);< 280434#$Ultimate##0 ~n := #in~n; 280463#L25 assume !(~n <= 0); 280383#L26 call #t~ret0 := fact(~n - 1);< 280389#$Ultimate##0 ~n := #in~n; 280462#L25 assume !(~n <= 0); 280381#L26 call #t~ret0 := fact(~n - 1);< 280455#$Ultimate##0 ~n := #in~n; 280473#L25 assume ~n <= 0;#res := 1; 280470#factFINAL assume true; 280454#factEXIT >#66#return; 280452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280450#factFINAL assume true; 280446#factEXIT >#66#return; 280444#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280437#factFINAL assume true; 280433#factEXIT >#66#return; 280388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280658#factFINAL assume true; 280520#factEXIT >#78#return; 280519#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280518#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 280516#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280512#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280510#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279704#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279727#$Ultimate##0 ~n := #in~n; 279728#L25 assume !(~n <= 0); 279714#L26 call #t~ret0 := fact(~n - 1);< 279716#$Ultimate##0 ~n := #in~n; 279736#L25 assume !(~n <= 0); 279715#L26 call #t~ret0 := fact(~n - 1);< 279748#$Ultimate##0 ~n := #in~n; 279736#L25 assume !(~n <= 0); 279715#L26 call #t~ret0 := fact(~n - 1);< 279748#$Ultimate##0 ~n := #in~n; 279736#L25 assume !(~n <= 0); 279715#L26 call #t~ret0 := fact(~n - 1);< 279748#$Ultimate##0 ~n := #in~n; 279750#L25 assume ~n <= 0;#res := 1; 279749#factFINAL assume true; 279747#factEXIT >#66#return; 279746#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279742#factFINAL assume true; 279743#factEXIT >#66#return; 279751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279734#factFINAL assume true; 279735#factEXIT >#66#return; 279729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279730#factFINAL assume true; 279713#factEXIT >#66#return; 279710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279711#factFINAL assume true; 279703#factEXIT >#74#return; 279660#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 279661#$Ultimate##0 ~n := #in~n; 279670#L25 assume ~n <= 0;#res := 1; 279665#factFINAL assume true; 279659#factEXIT >#76#return; 279485#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 279547#$Ultimate##0 ~n := #in~n; 279545#L25 assume !(~n <= 0); 279498#L26 call #t~ret0 := fact(~n - 1);< 279543#$Ultimate##0 ~n := #in~n; 279639#L25 assume !(~n <= 0); 279501#L26 call #t~ret0 := fact(~n - 1);< 279515#$Ultimate##0 ~n := #in~n; 279587#L25 assume !(~n <= 0); 279506#L26 call #t~ret0 := fact(~n - 1);< 279583#$Ultimate##0 ~n := #in~n; 279635#L25 assume ~n <= 0;#res := 1; 279632#factFINAL assume true; 279582#factEXIT >#66#return; 279580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279579#factFINAL assume true; 279578#factEXIT >#66#return; 279577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279575#factFINAL assume true; 279566#factEXIT >#66#return; 279511#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279775#factFINAL assume true; 279484#factEXIT >#78#return; 279389#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 279390#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 279407#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 279433#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 279404#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 279405#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 279418#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 279419#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 281040#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 281050#$Ultimate##0 ~n := #in~n; 281069#L25 assume !(~n <= 0); 281066#L26 call #t~ret0 := fact(~n - 1);< 281067#$Ultimate##0 ~n := #in~n; 281076#L25 assume ~n <= 0;#res := 1; 281074#factFINAL assume true; 281065#factEXIT >#66#return; 281063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281061#factFINAL assume true; 281049#factEXIT >#68#return; 281043#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 279422#$Ultimate##0 ~n := #in~n; 281064#L25 assume ~n <= 0;#res := 1; 281062#factFINAL assume true; 281038#factEXIT >#70#return; 279374#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 279375#$Ultimate##0 ~n := #in~n; 280924#L25 assume !(~n <= 0); 279359#L26 call #t~ret0 := fact(~n - 1);< 280923#$Ultimate##0 ~n := #in~n; 280926#L25 assume ~n <= 0;#res := 1; 280925#factFINAL assume true; 280922#factEXIT >#66#return; 280921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280889#factFINAL assume true; 279441#factEXIT >#72#return; 279442#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280858#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 280857#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280856#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280855#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280834#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 280848#$Ultimate##0 ~n := #in~n; 281359#L25 assume !(~n <= 0); 280709#L26 call #t~ret0 := fact(~n - 1);< 280718#$Ultimate##0 ~n := #in~n; 280747#L25 assume ~n <= 0;#res := 1; 280731#factFINAL assume true; 280720#factEXIT >#66#return; 280724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280854#factFINAL assume true; 280841#factEXIT >#68#return; 280835#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280840#$Ultimate##0 ~n := #in~n; 280892#L25 assume !(~n <= 0); 280697#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280747#L25 assume ~n <= 0;#res := 1; 280731#factFINAL assume true; 280720#factEXIT >#66#return; 280724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280854#factFINAL assume true; 280841#factEXIT >#70#return; 280756#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280780#$Ultimate##0 ~n := #in~n; 280788#L25 assume ~n <= 0;#res := 1; 280783#factFINAL assume true; 280754#factEXIT >#72#return; 280753#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280746#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 280730#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280719#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280693#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279461#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279432#$Ultimate##0 ~n := #in~n; 281060#L25 assume !(~n <= 0); 280708#L26 call #t~ret0 := fact(~n - 1);< 280718#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#74#return; 280680#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280690#$Ultimate##0 ~n := #in~n; 280891#L25 assume !(~n <= 0); 280706#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280747#L25 assume ~n <= 0;#res := 1; 280731#factFINAL assume true; 280720#factEXIT >#66#return; 280694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280691#factFINAL assume true; 280684#factEXIT >#76#return; 280683#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280748#$Ultimate##0 ~n := #in~n; 280744#L25 assume !(~n <= 0); 280722#L26 call #t~ret0 := fact(~n - 1);< 280725#$Ultimate##0 ~n := #in~n; 280747#L25 assume ~n <= 0;#res := 1; 280731#factFINAL assume true; 280720#factEXIT >#66#return; 280694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280691#factFINAL assume true; 280684#factEXIT >#78#return; 280688#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281080#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 281078#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281031#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281032#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279347#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279348#$Ultimate##0 ~n := #in~n; 280946#L25 assume !(~n <= 0); 280700#L26 call #t~ret0 := fact(~n - 1);< 280729#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280911#factFINAL assume true; 280890#factEXIT >#74#return; 280676#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280690#$Ultimate##0 ~n := #in~n; 280891#L25 assume !(~n <= 0); 280706#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280747#L25 assume ~n <= 0;#res := 1; 280731#factFINAL assume true; 280720#factEXIT >#66#return; 280694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280691#factFINAL assume true; 280684#factEXIT >#76#return; 280677#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280861#$Ultimate##0 ~n := #in~n; 280860#L25 assume !(~n <= 0); 280711#L26 call #t~ret0 := fact(~n - 1);< 280787#$Ultimate##0 ~n := #in~n; 280784#L25 assume !(~n <= 0); 280750#L26 call #t~ret0 := fact(~n - 1);< 280752#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#78#return; 280682#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281266#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 281035#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281036#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281030#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279462#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279348#$Ultimate##0 ~n := #in~n; 280946#L25 assume !(~n <= 0); 280700#L26 call #t~ret0 := fact(~n - 1);< 280729#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280911#factFINAL assume true; 280890#factEXIT >#74#return; 280672#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280690#$Ultimate##0 ~n := #in~n; 280891#L25 assume !(~n <= 0); 280706#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280747#L25 assume ~n <= 0;#res := 1; 280731#factFINAL assume true; 280720#factEXIT >#66#return; 280694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280691#factFINAL assume true; 280684#factEXIT >#76#return; 280678#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280861#$Ultimate##0 ~n := #in~n; 280860#L25 assume !(~n <= 0); 280711#L26 call #t~ret0 := fact(~n - 1);< 280787#$Ultimate##0 ~n := #in~n; 280784#L25 assume !(~n <= 0); 280750#L26 call #t~ret0 := fact(~n - 1);< 280752#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#78#return; 279446#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 279445#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 279444#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 279443#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 279439#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279345#L30-5 [2023-02-17 09:42:03,773 INFO L750 eck$LassoCheckResult]: Loop: 279345#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279346#$Ultimate##0 ~n := #in~n; 279898#L25 assume !(~n <= 0); 279795#L26 call #t~ret0 := fact(~n - 1);< 279895#$Ultimate##0 ~n := #in~n; 279885#L25 assume !(~n <= 0); 279791#L26 call #t~ret0 := fact(~n - 1);< 279882#$Ultimate##0 ~n := #in~n; 279885#L25 assume !(~n <= 0); 279791#L26 call #t~ret0 := fact(~n - 1);< 279882#$Ultimate##0 ~n := #in~n; 279885#L25 assume !(~n <= 0); 279791#L26 call #t~ret0 := fact(~n - 1);< 279882#$Ultimate##0 ~n := #in~n; 279889#L25 assume ~n <= 0;#res := 1; 279893#factFINAL assume true; 279880#factEXIT >#66#return; 279879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279876#factFINAL assume true; 279819#factEXIT >#66#return; 279814#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279807#factFINAL assume true; 279790#factEXIT >#66#return; 279803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279824#factFINAL assume true; 279815#factEXIT >#66#return; 279812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279805#factFINAL assume true; 279789#factEXIT >#74#return; 279429#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 279430#$Ultimate##0 ~n := #in~n; 279836#L25 assume !(~n <= 0); 279792#L26 call #t~ret0 := fact(~n - 1);< 279831#$Ultimate##0 ~n := #in~n; 279832#L25 assume ~n <= 0;#res := 1; 279877#factFINAL assume true; 279875#factEXIT >#66#return; 279874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279873#factFINAL assume true; 279813#factEXIT >#76#return; 279470#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 279787#$Ultimate##0 ~n := #in~n; 279899#L25 assume !(~n <= 0); 279799#L26 call #t~ret0 := fact(~n - 1);< 279804#$Ultimate##0 ~n := #in~n; 279894#L25 assume !(~n <= 0); 279796#L26 call #t~ret0 := fact(~n - 1);< 279811#$Ultimate##0 ~n := #in~n; 279878#L25 assume !(~n <= 0); 279820#L26 call #t~ret0 := fact(~n - 1);< 279822#$Ultimate##0 ~n := #in~n; 279889#L25 assume ~n <= 0;#res := 1; 279893#factFINAL assume true; 279880#factEXIT >#66#return; 279879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279876#factFINAL assume true; 279819#factEXIT >#66#return; 279814#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279807#factFINAL assume true; 279790#factEXIT >#66#return; 279788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 279785#factFINAL assume true; 279468#factEXIT >#78#return; 279477#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281057#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 281055#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281054#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 281053#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 281052#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 281051#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 279409#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279383#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279384#$Ultimate##0 ~n := #in~n; 281379#L25 assume !(~n <= 0); 281375#L26 call #t~ret0 := fact(~n - 1);< 281378#$Ultimate##0 ~n := #in~n; 281077#L25 assume !(~n <= 0); 281374#L26 call #t~ret0 := fact(~n - 1);< 281381#$Ultimate##0 ~n := #in~n; 281077#L25 assume !(~n <= 0); 281374#L26 call #t~ret0 := fact(~n - 1);< 281381#$Ultimate##0 ~n := #in~n; 281077#L25 assume !(~n <= 0); 281374#L26 call #t~ret0 := fact(~n - 1);< 281381#$Ultimate##0 ~n := #in~n; 281077#L25 assume !(~n <= 0); 281374#L26 call #t~ret0 := fact(~n - 1);< 281381#$Ultimate##0 ~n := #in~n; 281077#L25 assume !(~n <= 0); 281374#L26 call #t~ret0 := fact(~n - 1);< 281381#$Ultimate##0 ~n := #in~n; 281077#L25 assume !(~n <= 0); 281374#L26 call #t~ret0 := fact(~n - 1);< 281381#$Ultimate##0 ~n := #in~n; 281077#L25 assume !(~n <= 0); 281374#L26 call #t~ret0 := fact(~n - 1);< 281381#$Ultimate##0 ~n := #in~n; 281382#L25 assume ~n <= 0;#res := 1; 281400#factFINAL assume true; 281399#factEXIT >#66#return; 281398#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281397#factFINAL assume true; 281395#factEXIT >#66#return; 281394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281393#factFINAL assume true; 281392#factEXIT >#66#return; 281391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281390#factFINAL assume true; 281388#factEXIT >#66#return; 281387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281386#factFINAL assume true; 281384#factEXIT >#66#return; 281383#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281380#factFINAL assume true; 281373#factEXIT >#66#return; 281377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281481#factFINAL assume true; 281478#factEXIT >#66#return; 281472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281475#factFINAL assume true; 281471#factEXIT >#66#return; 281470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281469#factFINAL assume true; 281364#factEXIT >#68#return; 281039#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 281050#$Ultimate##0 ~n := #in~n; 281069#L25 assume ~n <= 0;#res := 1; 281062#factFINAL assume true; 281038#factEXIT >#70#return; 279393#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 279425#$Ultimate##0 ~n := #in~n; 279426#L25 assume !(~n <= 0); 279356#L26 call #t~ret0 := fact(~n - 1);< 279394#$Ultimate##0 ~n := #in~n; 281468#L25 assume !(~n <= 0); 279358#L26 call #t~ret0 := fact(~n - 1);< 281433#$Ultimate##0 ~n := #in~n; 281431#L25 assume !(~n <= 0); 279361#L26 call #t~ret0 := fact(~n - 1);< 281430#$Ultimate##0 ~n := #in~n; 281427#L25 assume !(~n <= 0); 279362#L26 call #t~ret0 := fact(~n - 1);< 281421#$Ultimate##0 ~n := #in~n; 281419#L25 assume !(~n <= 0); 279355#L26 call #t~ret0 := fact(~n - 1);< 281417#$Ultimate##0 ~n := #in~n; 281415#L25 assume !(~n <= 0); 279350#L26 call #t~ret0 := fact(~n - 1);< 281411#$Ultimate##0 ~n := #in~n; 281408#L25 assume !(~n <= 0); 279351#L26 call #t~ret0 := fact(~n - 1);< 281406#$Ultimate##0 ~n := #in~n; 280930#L25 assume !(~n <= 0); 279363#L26 call #t~ret0 := fact(~n - 1);< 281405#$Ultimate##0 ~n := #in~n; 279415#L25 assume ~n <= 0;#res := 1; 279416#factFINAL assume true; 281482#factEXIT >#66#return; 281480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281479#factFINAL assume true; 281476#factEXIT >#66#return; 281477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281512#factFINAL assume true; 281508#factEXIT >#66#return; 281507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281506#factFINAL assume true; 281505#factEXIT >#66#return; 281503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281502#factFINAL assume true; 281497#factEXIT >#66#return; 281495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281494#factFINAL assume true; 281492#factEXIT >#66#return; 281490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281489#factFINAL assume true; 281486#factEXIT >#66#return; 279364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281537#factFINAL assume true; 279349#factEXIT >#66#return; 279365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281466#factFINAL assume true; 281464#factEXIT >#72#return; 279400#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 279401#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 281028#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281027#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281026#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280798#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 281003#$Ultimate##0 ~n := #in~n; 281010#L25 assume !(~n <= 0); 280713#L26 call #t~ret0 := fact(~n - 1);< 280729#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281006#factFINAL assume true; 281001#factEXIT >#68#return; 280805#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280840#$Ultimate##0 ~n := #in~n; 280892#L25 assume !(~n <= 0); 280697#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280874#L25 assume !(~n <= 0); 280704#L26 call #t~ret0 := fact(~n - 1);< 280870#$Ultimate##0 ~n := #in~n; 280867#L25 assume !(~n <= 0); 280702#L26 call #t~ret0 := fact(~n - 1);< 280859#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281332#factFINAL assume true; 280789#factEXIT >#70#return; 280773#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280780#$Ultimate##0 ~n := #in~n; 280788#L25 assume ~n <= 0;#res := 1; 280783#factFINAL assume true; 280754#factEXIT >#72#return; 280776#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281019#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 281017#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281015#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281012#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 280795#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 281003#$Ultimate##0 ~n := #in~n; 281010#L25 assume !(~n <= 0); 280713#L26 call #t~ret0 := fact(~n - 1);< 280729#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281332#factFINAL assume true; 280789#factEXIT >#68#return; 280812#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280840#$Ultimate##0 ~n := #in~n; 280892#L25 assume !(~n <= 0); 280697#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280874#L25 assume !(~n <= 0); 280704#L26 call #t~ret0 := fact(~n - 1);< 280870#$Ultimate##0 ~n := #in~n; 280867#L25 assume !(~n <= 0); 280702#L26 call #t~ret0 := fact(~n - 1);< 280859#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281332#factFINAL assume true; 280789#factEXIT >#70#return; 280764#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280780#$Ultimate##0 ~n := #in~n; 280788#L25 assume ~n <= 0;#res := 1; 280783#factFINAL assume true; 280754#factEXIT >#72#return; 280777#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 281009#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 281008#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281007#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 281005#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279455#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279348#$Ultimate##0 ~n := #in~n; 280946#L25 assume !(~n <= 0); 280700#L26 call #t~ret0 := fact(~n - 1);< 280729#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280911#factFINAL assume true; 280890#factEXIT >#74#return; 280679#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280690#$Ultimate##0 ~n := #in~n; 280891#L25 assume !(~n <= 0); 280706#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280874#L25 assume !(~n <= 0); 280704#L26 call #t~ret0 := fact(~n - 1);< 280870#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#76#return; 280661#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280861#$Ultimate##0 ~n := #in~n; 280860#L25 assume !(~n <= 0); 280711#L26 call #t~ret0 := fact(~n - 1);< 280787#$Ultimate##0 ~n := #in~n; 280747#L25 assume ~n <= 0;#res := 1; 280731#factFINAL assume true; 280720#factEXIT >#66#return; 280694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280691#factFINAL assume true; 280684#factEXIT >#78#return; 280686#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 280998#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 280996#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 280994#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280992#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279453#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279348#$Ultimate##0 ~n := #in~n; 280946#L25 assume !(~n <= 0); 280700#L26 call #t~ret0 := fact(~n - 1);< 280729#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280974#factFINAL assume true; 280931#factEXIT >#66#return; 280934#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 281360#factFINAL assume true; 280877#factEXIT >#74#return; 280669#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280690#$Ultimate##0 ~n := #in~n; 280891#L25 assume !(~n <= 0); 280706#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280874#L25 assume !(~n <= 0); 280704#L26 call #t~ret0 := fact(~n - 1);< 280870#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#76#return; 280671#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280861#$Ultimate##0 ~n := #in~n; 280860#L25 assume !(~n <= 0); 280711#L26 call #t~ret0 := fact(~n - 1);< 280787#$Ultimate##0 ~n := #in~n; 280784#L25 assume !(~n <= 0); 280750#L26 call #t~ret0 := fact(~n - 1);< 280752#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#78#return; 279391#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 279392#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 279408#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 281331#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 280882#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279440#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 279348#$Ultimate##0 ~n := #in~n; 280946#L25 assume !(~n <= 0); 280700#L26 call #t~ret0 := fact(~n - 1);< 280729#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 281068#L25 assume !(~n <= 0); 280705#L26 call #t~ret0 := fact(~n - 1);< 280751#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280716#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280928#factFINAL assume true; 280915#factEXIT >#66#return; 280913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280911#factFINAL assume true; 280890#factEXIT >#74#return; 280672#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 280690#$Ultimate##0 ~n := #in~n; 280891#L25 assume !(~n <= 0); 280706#L26 call #t~ret0 := fact(~n - 1);< 280876#$Ultimate##0 ~n := #in~n; 280874#L25 assume !(~n <= 0); 280704#L26 call #t~ret0 := fact(~n - 1);< 280870#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#76#return; 280678#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 280861#$Ultimate##0 ~n := #in~n; 280860#L25 assume !(~n <= 0); 280711#L26 call #t~ret0 := fact(~n - 1);< 280787#$Ultimate##0 ~n := #in~n; 280784#L25 assume !(~n <= 0); 280750#L26 call #t~ret0 := fact(~n - 1);< 280752#$Ultimate##0 ~n := #in~n; 280786#L25 assume ~n <= 0;#res := 1; 280781#factFINAL assume true; 280749#factEXIT >#66#return; 280745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280726#factFINAL assume true; 280695#factEXIT >#66#return; 280692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 280689#factFINAL assume true; 280660#factEXIT >#78#return; 279446#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 279445#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 279444#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 279443#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 279439#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 279345#L30-5 [2023-02-17 09:42:03,774 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:03,774 INFO L85 PathProgramCache]: Analyzing trace with hash -231216586, now seen corresponding path program 21 times [2023-02-17 09:42:03,774 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:03,774 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1688842504] [2023-02-17 09:42:03,774 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:03,775 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:03,793 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:03,793 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1056538034] [2023-02-17 09:42:03,793 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:03,793 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:03,793 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:03,800 INFO L229 MonitoredProcess]: Starting monitored process 191 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:03,801 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (191)] Waiting until timeout for monitored process [2023-02-17 09:42:04,234 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2023-02-17 09:42:04,235 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:04,237 INFO L263 TraceCheckSpWp]: Trace formula consists of 513 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-17 09:42:04,241 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:04,338 INFO L134 CoverageAnalysis]: Checked inductivity of 11153 backedges. 1136 proven. 603 refuted. 0 times theorem prover too weak. 9414 trivial. 0 not checked. [2023-02-17 09:42:04,338 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:04,560 INFO L134 CoverageAnalysis]: Checked inductivity of 11153 backedges. 1136 proven. 613 refuted. 0 times theorem prover too weak. 9404 trivial. 0 not checked. [2023-02-17 09:42:04,561 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:04,561 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1688842504] [2023-02-17 09:42:04,561 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:04,561 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1056538034] [2023-02-17 09:42:04,561 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1056538034] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:04,561 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:04,561 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 22] total 26 [2023-02-17 09:42:04,561 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1406989233] [2023-02-17 09:42:04,561 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:04,562 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:04,562 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:04,562 INFO L85 PathProgramCache]: Analyzing trace with hash -438660043, now seen corresponding path program 15 times [2023-02-17 09:42:04,563 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:04,563 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [408167713] [2023-02-17 09:42:04,563 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:04,563 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:04,575 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:04,575 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2107721583] [2023-02-17 09:42:04,576 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:04,576 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:04,576 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:04,579 INFO L229 MonitoredProcess]: Starting monitored process 192 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:04,580 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (192)] Waiting until timeout for monitored process [2023-02-17 09:42:04,949 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2023-02-17 09:42:04,949 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:04,951 INFO L263 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:42:04,954 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:04,992 INFO L134 CoverageAnalysis]: Checked inductivity of 14899 backedges. 2348 proven. 128 refuted. 0 times theorem prover too weak. 12423 trivial. 0 not checked. [2023-02-17 09:42:04,992 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:05,121 INFO L134 CoverageAnalysis]: Checked inductivity of 14899 backedges. 2348 proven. 141 refuted. 0 times theorem prover too weak. 12410 trivial. 0 not checked. [2023-02-17 09:42:05,122 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:05,122 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [408167713] [2023-02-17 09:42:05,122 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:05,122 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2107721583] [2023-02-17 09:42:05,122 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2107721583] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:05,123 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:05,123 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 16] total 19 [2023-02-17 09:42:05,123 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [817153659] [2023-02-17 09:42:05,123 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:05,124 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:05,124 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:05,124 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2023-02-17 09:42:05,124 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=83, Invalid=567, Unknown=0, NotChecked=0, Total=650 [2023-02-17 09:42:05,125 INFO L87 Difference]: Start difference. First operand 2195 states and 3977 transitions. cyclomatic complexity: 1807 Second operand has 26 states, 22 states have (on average 3.1818181818181817) internal successors, (70), 26 states have internal predecessors, (70), 13 states have call successors, (32), 1 states have call predecessors, (32), 7 states have return successors, (34), 13 states have call predecessors, (34), 13 states have call successors, (34) [2023-02-17 09:42:05,902 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:05,902 INFO L93 Difference]: Finished difference Result 2718 states and 5639 transitions. [2023-02-17 09:42:05,902 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2718 states and 5639 transitions. [2023-02-17 09:42:05,918 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 336 [2023-02-17 09:42:05,931 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2718 states to 2413 states and 4466 transitions. [2023-02-17 09:42:05,931 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 333 [2023-02-17 09:42:05,931 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 333 [2023-02-17 09:42:05,931 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2413 states and 4466 transitions. [2023-02-17 09:42:05,931 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:05,931 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2413 states and 4466 transitions. [2023-02-17 09:42:05,932 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2413 states and 4466 transitions. [2023-02-17 09:42:05,959 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2413 to 2195. [2023-02-17 09:42:05,961 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2195 states, 1353 states have (on average 1.0465631929046564) internal successors, (1416), 1337 states have internal predecessors, (1416), 526 states have call successors, (560), 318 states have call predecessors, (560), 316 states have return successors, (1992), 539 states have call predecessors, (1992), 526 states have call successors, (1992) [2023-02-17 09:42:05,967 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2195 states to 2195 states and 3968 transitions. [2023-02-17 09:42:05,967 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2195 states and 3968 transitions. [2023-02-17 09:42:05,967 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 30 states. [2023-02-17 09:42:05,967 INFO L428 stractBuchiCegarLoop]: Abstraction has 2195 states and 3968 transitions. [2023-02-17 09:42:05,968 INFO L335 stractBuchiCegarLoop]: ======== Iteration 45 ============ [2023-02-17 09:42:05,968 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2195 states and 3968 transitions. [2023-02-17 09:42:05,972 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 287 [2023-02-17 09:42:05,972 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:05,972 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:05,975 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [70, 70, 40, 40, 40, 40, 30, 11, 10, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:05,975 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [107, 107, 86, 86, 86, 86, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:05,976 INFO L748 eck$LassoCheckResult]: Stem: 289970#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 289918#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 289919#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 289936#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 289928#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 289929#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 290587#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290572#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 290573#$Ultimate##0 ~n := #in~n; 290586#L25 assume ~n <= 0;#res := 1; 290584#factFINAL assume true; 290571#factEXIT >#68#return; 290568#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290569#$Ultimate##0 ~n := #in~n; 290585#L25 assume ~n <= 0;#res := 1; 290583#factFINAL assume true; 290567#factEXIT >#70#return; 290564#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290565#$Ultimate##0 ~n := #in~n; 290579#L25 assume ~n <= 0;#res := 1; 290578#factFINAL assume true; 290563#factEXIT >#72#return; 290562#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 290561#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 290559#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 290558#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 290557#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290544#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 290545#$Ultimate##0 ~n := #in~n; 290560#L25 assume !(~n <= 0); 290552#L26 call #t~ret0 := fact(~n - 1);< 290554#$Ultimate##0 ~n := #in~n; 290577#L25 assume ~n <= 0;#res := 1; 290575#factFINAL assume true; 290550#factEXIT >#66#return; 290553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290556#factFINAL assume true; 290543#factEXIT >#74#return; 290538#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290539#$Ultimate##0 ~n := #in~n; 290555#L25 assume ~n <= 0;#res := 1; 290542#factFINAL assume true; 290537#factEXIT >#76#return; 290533#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290534#$Ultimate##0 ~n := #in~n; 290582#L25 assume !(~n <= 0); 290551#L26 call #t~ret0 := fact(~n - 1);< 290554#$Ultimate##0 ~n := #in~n; 290577#L25 assume ~n <= 0;#res := 1; 290575#factFINAL assume true; 290550#factEXIT >#66#return; 290541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290536#factFINAL assume true; 290532#factEXIT >#78#return; 290530#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 290529#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 290527#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 290525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 290519#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290327#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 290437#$Ultimate##0 ~n := #in~n; 290516#L25 assume !(~n <= 0); 290455#L26 call #t~ret0 := fact(~n - 1);< 290511#$Ultimate##0 ~n := #in~n; 290606#L25 assume !(~n <= 0); 290462#L26 call #t~ret0 := fact(~n - 1);< 290600#$Ultimate##0 ~n := #in~n; 290605#L25 assume ~n <= 0;#res := 1; 290602#factFINAL assume true; 290597#factEXIT >#66#return; 290594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290591#factFINAL assume true; 290521#factEXIT >#66#return; 290523#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290601#factFINAL assume true; 290596#factEXIT >#74#return; 290493#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290497#$Ultimate##0 ~n := #in~n; 290504#L25 assume ~n <= 0;#res := 1; 290498#factFINAL assume true; 290492#factEXIT >#76#return; 290495#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290590#$Ultimate##0 ~n := #in~n; 290595#L25 assume !(~n <= 0); 290522#L26 call #t~ret0 := fact(~n - 1);< 290592#$Ultimate##0 ~n := #in~n; 290604#L25 assume !(~n <= 0); 290598#L26 call #t~ret0 := fact(~n - 1);< 290599#$Ultimate##0 ~n := #in~n; 290605#L25 assume ~n <= 0;#res := 1; 290602#factFINAL assume true; 290597#factEXIT >#66#return; 290594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290591#factFINAL assume true; 290521#factEXIT >#66#return; 290524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290593#factFINAL assume true; 290589#factEXIT >#78#return; 290520#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 290517#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 290512#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 290508#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 290506#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290328#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 290437#$Ultimate##0 ~n := #in~n; 290516#L25 assume !(~n <= 0); 290455#L26 call #t~ret0 := fact(~n - 1);< 290511#$Ultimate##0 ~n := #in~n; 290606#L25 assume !(~n <= 0); 290462#L26 call #t~ret0 := fact(~n - 1);< 290600#$Ultimate##0 ~n := #in~n; 290606#L25 assume !(~n <= 0); 290462#L26 call #t~ret0 := fact(~n - 1);< 290600#$Ultimate##0 ~n := #in~n; 290605#L25 assume ~n <= 0;#res := 1; 290602#factFINAL assume true; 290597#factEXIT >#66#return; 290594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290591#factFINAL assume true; 290521#factEXIT >#66#return; 290518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290513#factFINAL assume true; 290509#factEXIT >#66#return; 290507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290505#factFINAL assume true; 290503#factEXIT >#74#return; 290494#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290496#$Ultimate##0 ~n := #in~n; 290658#L25 assume ~n <= 0;#res := 1; 290657#factFINAL assume true; 290656#factEXIT >#76#return; 290653#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290655#$Ultimate##0 ~n := #in~n; 290693#L25 assume !(~n <= 0); 290678#L26 call #t~ret0 := fact(~n - 1);< 290689#$Ultimate##0 ~n := #in~n; 290703#L25 assume !(~n <= 0); 290674#L26 call #t~ret0 := fact(~n - 1);< 290681#$Ultimate##0 ~n := #in~n; 290704#L25 assume !(~n <= 0); 290676#L26 call #t~ret0 := fact(~n - 1);< 290701#$Ultimate##0 ~n := #in~n; 290705#L25 assume ~n <= 0;#res := 1; 290702#factFINAL assume true; 290700#factEXIT >#66#return; 290699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290696#factFINAL assume true; 290694#factEXIT >#66#return; 290691#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290690#factFINAL assume true; 290688#factEXIT >#66#return; 290680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290659#factFINAL assume true; 290652#factEXIT >#78#return; 290651#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 290650#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 290649#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 290297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 290230#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290086#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 290087#$Ultimate##0 ~n := #in~n; 290165#L25 assume !(~n <= 0); 290166#L26 call #t~ret0 := fact(~n - 1);< 290224#$Ultimate##0 ~n := #in~n; 290206#L25 assume !(~n <= 0); 290197#L26 call #t~ret0 := fact(~n - 1);< 290221#$Ultimate##0 ~n := #in~n; 290206#L25 assume !(~n <= 0); 290197#L26 call #t~ret0 := fact(~n - 1);< 290221#$Ultimate##0 ~n := #in~n; 290206#L25 assume !(~n <= 0); 290197#L26 call #t~ret0 := fact(~n - 1);< 290221#$Ultimate##0 ~n := #in~n; 290223#L25 assume ~n <= 0;#res := 1; 290222#factFINAL assume true; 290220#factEXIT >#66#return; 290219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290214#factFINAL assume true; 290215#factEXIT >#66#return; 290207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290208#factFINAL assume true; 290202#factEXIT >#66#return; 290199#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290196#factFINAL assume true; 290198#factEXIT >#66#return; 290152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290153#factFINAL assume true; 290085#factEXIT >#74#return; 290080#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290081#$Ultimate##0 ~n := #in~n; 290093#L25 assume ~n <= 0;#res := 1; 290090#factFINAL assume true; 290079#factEXIT >#76#return; 290067#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290078#$Ultimate##0 ~n := #in~n; 290066#L25 assume !(~n <= 0); 290029#L26 call #t~ret0 := fact(~n - 1);< 290075#$Ultimate##0 ~n := #in~n; 290107#L25 assume !(~n <= 0); 290032#L26 call #t~ret0 := fact(~n - 1);< 290043#$Ultimate##0 ~n := #in~n; 290105#L25 assume !(~n <= 0); 290030#L26 call #t~ret0 := fact(~n - 1);< 290102#$Ultimate##0 ~n := #in~n; 290105#L25 assume !(~n <= 0); 290030#L26 call #t~ret0 := fact(~n - 1);< 290102#$Ultimate##0 ~n := #in~n; 290106#L25 assume ~n <= 0;#res := 1; 290104#factFINAL assume true; 290101#factEXIT >#66#return; 290100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290099#factFINAL assume true; 290098#factEXIT >#66#return; 290097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290096#factFINAL assume true; 290094#factEXIT >#66#return; 290091#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290074#factFINAL assume true; 290068#factEXIT >#66#return; 290040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290291#factFINAL assume true; 290290#factEXIT >#78#return; 289920#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289921#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 291094#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291093#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 291092#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 291091#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 291090#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291089#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 291077#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 291088#$Ultimate##0 ~n := #in~n; 291103#L25 assume !(~n <= 0); 291101#L26 call #t~ret0 := fact(~n - 1);< 291102#$Ultimate##0 ~n := #in~n; 291105#L25 assume ~n <= 0;#res := 1; 291104#factFINAL assume true; 291100#factEXIT >#66#return; 291098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291096#factFINAL assume true; 291087#factEXIT >#68#return; 291081#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 289956#$Ultimate##0 ~n := #in~n; 291099#L25 assume ~n <= 0;#res := 1; 291097#factFINAL assume true; 291076#factEXIT >#70#return; 291074#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 291075#$Ultimate##0 ~n := #in~n; 291115#L25 assume !(~n <= 0); 289894#L26 call #t~ret0 := fact(~n - 1);< 291110#$Ultimate##0 ~n := #in~n; 291119#L25 assume ~n <= 0;#res := 1; 291118#factFINAL assume true; 291109#factEXIT >#66#return; 291108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291107#factFINAL assume true; 291073#factEXIT >#72#return; 291072#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 291070#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 291069#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291068#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291067#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290905#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 291061#$Ultimate##0 ~n := #in~n; 291063#L25 assume !(~n <= 0); 290819#L26 call #t~ret0 := fact(~n - 1);< 290839#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291136#factFINAL assume true; 291133#factEXIT >#68#return; 290940#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290960#$Ultimate##0 ~n := #in~n; 290978#L25 assume !(~n <= 0); 290816#L26 call #t~ret0 := fact(~n - 1);< 290974#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291136#factFINAL assume true; 291133#factEXIT >#70#return; 290890#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290900#$Ultimate##0 ~n := #in~n; 290968#L25 assume ~n <= 0;#res := 1; 290863#factFINAL assume true; 290874#factEXIT >#72#return; 290871#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 290865#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 290859#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 290840#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 290809#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289998#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289974#$Ultimate##0 ~n := #in~n; 291125#L25 assume !(~n <= 0); 290811#L26 call #t~ret0 := fact(~n - 1);< 290839#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290805#factFINAL assume true; 290802#factEXIT >#74#return; 290782#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290806#$Ultimate##0 ~n := #in~n; 290977#L25 assume !(~n <= 0); 290813#L26 call #t~ret0 := fact(~n - 1);< 290974#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290804#factFINAL assume true; 290775#factEXIT >#76#return; 290786#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290864#$Ultimate##0 ~n := #in~n; 290858#L25 assume !(~n <= 0); 290820#L26 call #t~ret0 := fact(~n - 1);< 290824#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290804#factFINAL assume true; 290775#factEXIT >#78#return; 290798#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 291148#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 291147#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291146#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291145#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289994#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289884#$Ultimate##0 ~n := #in~n; 291059#L25 assume !(~n <= 0); 290834#L26 call #t~ret0 := fact(~n - 1);< 291019#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291021#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291005#factFINAL assume true; 290975#factEXIT >#74#return; 290790#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290806#$Ultimate##0 ~n := #in~n; 290977#L25 assume !(~n <= 0); 290813#L26 call #t~ret0 := fact(~n - 1);< 290974#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290804#factFINAL assume true; 290775#factEXIT >#76#return; 290791#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290964#$Ultimate##0 ~n := #in~n; 290963#L25 assume !(~n <= 0); 290814#L26 call #t~ret0 := fact(~n - 1);< 290902#$Ultimate##0 ~n := #in~n; 290873#L25 assume !(~n <= 0); 290867#L26 call #t~ret0 := fact(~n - 1);< 290869#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290805#factFINAL assume true; 290802#factEXIT >#78#return; 290803#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289939#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 289940#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291338#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291337#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289996#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289884#$Ultimate##0 ~n := #in~n; 291059#L25 assume !(~n <= 0); 290834#L26 call #t~ret0 := fact(~n - 1);< 291019#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291021#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291005#factFINAL assume true; 290975#factEXIT >#74#return; 290780#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290806#$Ultimate##0 ~n := #in~n; 290977#L25 assume !(~n <= 0); 290813#L26 call #t~ret0 := fact(~n - 1);< 290974#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290804#factFINAL assume true; 290775#factEXIT >#76#return; 290783#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290964#$Ultimate##0 ~n := #in~n; 290963#L25 assume !(~n <= 0); 290814#L26 call #t~ret0 := fact(~n - 1);< 290902#$Ultimate##0 ~n := #in~n; 290873#L25 assume !(~n <= 0); 290867#L26 call #t~ret0 := fact(~n - 1);< 290869#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290805#factFINAL assume true; 290802#factEXIT >#78#return; 289981#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289980#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 289979#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 289978#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 289976#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289881#L30-5 [2023-02-17 09:42:05,977 INFO L750 eck$LassoCheckResult]: Loop: 289881#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289882#$Ultimate##0 ~n := #in~n; 290415#L25 assume !(~n <= 0); 290316#L26 call #t~ret0 := fact(~n - 1);< 290365#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290400#L25 assume ~n <= 0;#res := 1; 290398#factFINAL assume true; 290388#factEXIT >#66#return; 290387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290386#factFINAL assume true; 290380#factEXIT >#66#return; 290378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290376#factFINAL assume true; 290369#factEXIT >#66#return; 290366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290363#factFINAL assume true; 290358#factEXIT >#66#return; 290357#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290355#factFINAL assume true; 290352#factEXIT >#66#return; 290353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290430#factFINAL assume true; 290428#factEXIT >#66#return; 290306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290300#factFINAL assume true; 290301#factEXIT >#74#return; 290012#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290302#$Ultimate##0 ~n := #in~n; 290379#L25 assume !(~n <= 0); 290320#L26 call #t~ret0 := fact(~n - 1);< 290377#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290400#L25 assume ~n <= 0;#res := 1; 290398#factFINAL assume true; 290388#factEXIT >#66#return; 290387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290386#factFINAL assume true; 290380#factEXIT >#66#return; 290378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290376#factFINAL assume true; 290369#factEXIT >#66#return; 290366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290363#factFINAL assume true; 290358#factEXIT >#66#return; 290357#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290355#factFINAL assume true; 290352#factEXIT >#66#return; 290353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290430#factFINAL assume true; 290428#factEXIT >#66#return; 290425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290422#factFINAL assume true; 290421#factEXIT >#66#return; 290322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290337#factFINAL assume true; 290309#factEXIT >#66#return; 290323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290432#factFINAL assume true; 290004#factEXIT >#76#return; 290006#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290302#$Ultimate##0 ~n := #in~n; 290379#L25 assume !(~n <= 0); 290320#L26 call #t~ret0 := fact(~n - 1);< 290377#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290402#L25 assume !(~n <= 0); 290311#L26 call #t~ret0 := fact(~n - 1);< 290390#$Ultimate##0 ~n := #in~n; 290400#L25 assume ~n <= 0;#res := 1; 290398#factFINAL assume true; 290388#factEXIT >#66#return; 290387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290386#factFINAL assume true; 290380#factEXIT >#66#return; 290378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290376#factFINAL assume true; 290369#factEXIT >#66#return; 290366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290363#factFINAL assume true; 290358#factEXIT >#66#return; 290357#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290355#factFINAL assume true; 290352#factEXIT >#66#return; 290353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290430#factFINAL assume true; 290428#factEXIT >#66#return; 290425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290422#factFINAL assume true; 290421#factEXIT >#66#return; 290322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290337#factFINAL assume true; 290309#factEXIT >#66#return; 290323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290432#factFINAL assume true; 290004#factEXIT >#78#return; 290013#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289937#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 289938#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 289969#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 289934#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 289935#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 289948#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 289941#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289907#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289908#$Ultimate##0 ~n := #in~n; 291499#L25 assume !(~n <= 0); 291496#L26 call #t~ret0 := fact(~n - 1);< 291498#$Ultimate##0 ~n := #in~n; 291106#L25 assume !(~n <= 0); 291495#L26 call #t~ret0 := fact(~n - 1);< 291501#$Ultimate##0 ~n := #in~n; 291106#L25 assume !(~n <= 0); 291495#L26 call #t~ret0 := fact(~n - 1);< 291501#$Ultimate##0 ~n := #in~n; 291106#L25 assume !(~n <= 0); 291495#L26 call #t~ret0 := fact(~n - 1);< 291501#$Ultimate##0 ~n := #in~n; 291106#L25 assume !(~n <= 0); 291495#L26 call #t~ret0 := fact(~n - 1);< 291501#$Ultimate##0 ~n := #in~n; 291106#L25 assume !(~n <= 0); 291495#L26 call #t~ret0 := fact(~n - 1);< 291501#$Ultimate##0 ~n := #in~n; 291502#L25 assume ~n <= 0;#res := 1; 291521#factFINAL assume true; 291520#factEXIT >#66#return; 291519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291518#factFINAL assume true; 291516#factEXIT >#66#return; 291515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291514#factFINAL assume true; 291513#factEXIT >#66#return; 291512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291511#factFINAL assume true; 291509#factEXIT >#66#return; 291508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291507#factFINAL assume true; 291504#factEXIT >#66#return; 291506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291622#factFINAL assume true; 291620#factEXIT >#66#return; 291618#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291617#factFINAL assume true; 291616#factEXIT >#68#return; 291078#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 291088#$Ultimate##0 ~n := #in~n; 291103#L25 assume ~n <= 0;#res := 1; 291097#factFINAL assume true; 291076#factEXIT >#70#return; 291084#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 291611#$Ultimate##0 ~n := #in~n; 291609#L25 assume !(~n <= 0); 289895#L26 call #t~ret0 := fact(~n - 1);< 291607#$Ultimate##0 ~n := #in~n; 291603#L25 assume !(~n <= 0); 289890#L26 call #t~ret0 := fact(~n - 1);< 291591#$Ultimate##0 ~n := #in~n; 291586#L25 assume !(~n <= 0); 289893#L26 call #t~ret0 := fact(~n - 1);< 291581#$Ultimate##0 ~n := #in~n; 291572#L25 assume !(~n <= 0); 289886#L26 call #t~ret0 := fact(~n - 1);< 291554#$Ultimate##0 ~n := #in~n; 291552#L25 assume !(~n <= 0); 289888#L26 call #t~ret0 := fact(~n - 1);< 291550#$Ultimate##0 ~n := #in~n; 291121#L25 assume !(~n <= 0); 289891#L26 call #t~ret0 := fact(~n - 1);< 291548#$Ultimate##0 ~n := #in~n; 289950#L25 assume ~n <= 0;#res := 1; 289951#factFINAL assume true; 291594#factEXIT >#66#return; 291592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291587#factFINAL assume true; 291584#factEXIT >#66#return; 291585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291640#factFINAL assume true; 291638#factEXIT >#66#return; 291637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291635#factFINAL assume true; 291632#factEXIT >#66#return; 291631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291629#factFINAL assume true; 291627#factEXIT >#66#return; 291628#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291687#factFINAL assume true; 289885#factEXIT >#66#return; 289898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291699#factFINAL assume true; 291604#factEXIT >#72#return; 289930#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289931#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 291185#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291184#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291183#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290907#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 291045#$Ultimate##0 ~n := #in~n; 291071#L25 assume !(~n <= 0); 290826#L26 call #t~ret0 := fact(~n - 1);< 291019#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291117#factFINAL assume true; 291030#factEXIT >#66#return; 291032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291016#factFINAL assume true; 290987#factEXIT >#66#return; 290999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291111#factFINAL assume true; 291038#factEXIT >#66#return; 291041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291163#factFINAL assume true; 291152#factEXIT >#66#return; 291157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291340#factFINAL assume true; 291339#factEXIT >#68#return; 290916#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 291061#$Ultimate##0 ~n := #in~n; 291063#L25 assume !(~n <= 0); 290819#L26 call #t~ret0 := fact(~n - 1);< 290839#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291117#factFINAL assume true; 291030#factEXIT >#66#return; 291032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291016#factFINAL assume true; 290987#factEXIT >#66#return; 291000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291060#factFINAL assume true; 291044#factEXIT >#70#return; 290855#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 291138#$Ultimate##0 ~n := #in~n; 291137#L25 assume !(~n <= 0); 290815#L26 call #t~ret0 := fact(~n - 1);< 290839#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290822#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291186#factFINAL assume true; 291182#factEXIT >#72#return; 290899#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 291181#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 291180#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291179#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291178#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290951#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 291045#$Ultimate##0 ~n := #in~n; 291071#L25 assume !(~n <= 0); 290826#L26 call #t~ret0 := fact(~n - 1);< 291019#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291117#factFINAL assume true; 291030#factEXIT >#66#return; 291032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291016#factFINAL assume true; 290987#factEXIT >#66#return; 290999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291111#factFINAL assume true; 291038#factEXIT >#66#return; 291041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291163#factFINAL assume true; 291152#factEXIT >#66#return; 291157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291340#factFINAL assume true; 291339#factEXIT >#68#return; 290949#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 291061#$Ultimate##0 ~n := #in~n; 291063#L25 assume !(~n <= 0); 290819#L26 call #t~ret0 := fact(~n - 1);< 290839#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291117#factFINAL assume true; 291030#factEXIT >#66#return; 291032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291016#factFINAL assume true; 290987#factEXIT >#66#return; 291000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291060#factFINAL assume true; 291044#factEXIT >#70#return; 290856#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 291138#$Ultimate##0 ~n := #in~n; 291137#L25 assume ~n <= 0;#res := 1; 290863#factFINAL assume true; 290874#factEXIT >#72#return; 290896#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 291177#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 291175#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291172#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291168#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289883#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289884#$Ultimate##0 ~n := #in~n; 291059#L25 assume !(~n <= 0); 290834#L26 call #t~ret0 := fact(~n - 1);< 291019#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291021#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291005#factFINAL assume true; 290975#factEXIT >#74#return; 290788#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290806#$Ultimate##0 ~n := #in~n; 290977#L25 assume !(~n <= 0); 290813#L26 call #t~ret0 := fact(~n - 1);< 290974#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290804#factFINAL assume true; 290775#factEXIT >#76#return; 290792#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290964#$Ultimate##0 ~n := #in~n; 290963#L25 assume !(~n <= 0); 290814#L26 call #t~ret0 := fact(~n - 1);< 290902#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290804#factFINAL assume true; 290775#factEXIT >#78#return; 290801#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 291066#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 291065#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291064#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291062#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 290001#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289884#$Ultimate##0 ~n := #in~n; 291059#L25 assume !(~n <= 0); 290834#L26 call #t~ret0 := fact(~n - 1);< 291019#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291021#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291005#factFINAL assume true; 290975#factEXIT >#74#return; 290781#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 290806#$Ultimate##0 ~n := #in~n; 290977#L25 assume !(~n <= 0); 290813#L26 call #t~ret0 := fact(~n - 1);< 290974#$Ultimate##0 ~n := #in~n; 290860#L25 assume ~n <= 0;#res := 1; 290841#factFINAL assume true; 290810#factEXIT >#66#return; 290807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290804#factFINAL assume true; 290775#factEXIT >#76#return; 290784#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 290964#$Ultimate##0 ~n := #in~n; 290963#L25 assume !(~n <= 0); 290814#L26 call #t~ret0 := fact(~n - 1);< 290902#$Ultimate##0 ~n := #in~n; 290873#L25 assume !(~n <= 0); 290867#L26 call #t~ret0 := fact(~n - 1);< 290869#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290805#factFINAL assume true; 290802#factEXIT >#78#return; 289922#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289923#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 291174#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 291171#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 291167#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289977#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 289884#$Ultimate##0 ~n := #in~n; 291059#L25 assume !(~n <= 0); 290834#L26 call #t~ret0 := fact(~n - 1);< 291019#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291117#factFINAL assume true; 291030#factEXIT >#66#return; 291032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291016#factFINAL assume true; 290987#factEXIT >#66#return; 290999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291111#factFINAL assume true; 291038#factEXIT >#66#return; 291037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291036#factFINAL assume true; 291035#factEXIT >#74#return; 289989#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 289974#$Ultimate##0 ~n := #in~n; 291125#L25 assume !(~n <= 0); 290811#L26 call #t~ret0 := fact(~n - 1);< 290839#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291117#factFINAL assume true; 291030#factEXIT >#66#return; 291032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291016#factFINAL assume true; 290987#factEXIT >#66#return; 290983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290979#factFINAL assume true; 290976#factEXIT >#76#return; 289985#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 289974#$Ultimate##0 ~n := #in~n; 291125#L25 assume !(~n <= 0); 290811#L26 call #t~ret0 := fact(~n - 1);< 290839#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 291095#L25 assume !(~n <= 0); 290832#L26 call #t~ret0 := fact(~n - 1);< 290868#$Ultimate##0 ~n := #in~n; 290901#L25 assume ~n <= 0;#res := 1; 290872#factFINAL assume true; 290866#factEXIT >#66#return; 290861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290848#factFINAL assume true; 290825#factEXIT >#66#return; 290836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291053#factFINAL assume true; 291022#factEXIT >#66#return; 291024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291117#factFINAL assume true; 291030#factEXIT >#66#return; 291032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 291016#factFINAL assume true; 290987#factEXIT >#66#return; 290983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 290979#factFINAL assume true; 290976#factEXIT >#78#return; 289981#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 289980#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 289979#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 289978#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 289976#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 289881#L30-5 [2023-02-17 09:42:05,982 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:05,982 INFO L85 PathProgramCache]: Analyzing trace with hash -1279653714, now seen corresponding path program 22 times [2023-02-17 09:42:05,982 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:05,983 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1309725652] [2023-02-17 09:42:05,983 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:05,983 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:06,001 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:06,001 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1897647657] [2023-02-17 09:42:06,001 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:06,001 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:06,001 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:06,005 INFO L229 MonitoredProcess]: Starting monitored process 193 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:06,005 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (193)] Waiting until timeout for monitored process [2023-02-17 09:42:06,457 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:06,457 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:06,461 INFO L263 TraceCheckSpWp]: Trace formula consists of 1021 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:42:06,465 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:06,507 INFO L134 CoverageAnalysis]: Checked inductivity of 11507 backedges. 2677 proven. 17 refuted. 0 times theorem prover too weak. 8813 trivial. 0 not checked. [2023-02-17 09:42:06,507 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:06,596 INFO L134 CoverageAnalysis]: Checked inductivity of 11507 backedges. 1155 proven. 104 refuted. 0 times theorem prover too weak. 10248 trivial. 0 not checked. [2023-02-17 09:42:06,596 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:06,596 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1309725652] [2023-02-17 09:42:06,596 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:06,596 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1897647657] [2023-02-17 09:42:06,596 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1897647657] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:06,596 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:06,597 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 16] total 17 [2023-02-17 09:42:06,597 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2021187106] [2023-02-17 09:42:06,597 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:06,597 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:06,597 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:06,597 INFO L85 PathProgramCache]: Analyzing trace with hash -1729024523, now seen corresponding path program 16 times [2023-02-17 09:42:06,597 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:06,597 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1791229558] [2023-02-17 09:42:06,598 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:06,598 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:06,611 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:06,611 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1615246652] [2023-02-17 09:42:06,611 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:06,612 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:06,612 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:06,614 INFO L229 MonitoredProcess]: Starting monitored process 194 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:06,614 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (194)] Waiting until timeout for monitored process [2023-02-17 09:42:07,092 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:07,092 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:07,097 INFO L263 TraceCheckSpWp]: Trace formula consists of 1397 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-17 09:42:07,102 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:07,211 INFO L134 CoverageAnalysis]: Checked inductivity of 30109 backedges. 11151 proven. 989 refuted. 0 times theorem prover too weak. 17969 trivial. 0 not checked. [2023-02-17 09:42:07,212 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:07,766 INFO L134 CoverageAnalysis]: Checked inductivity of 30109 backedges. 135 proven. 6937 refuted. 0 times theorem prover too weak. 23037 trivial. 0 not checked. [2023-02-17 09:42:07,766 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:07,766 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1791229558] [2023-02-17 09:42:07,766 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:07,766 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1615246652] [2023-02-17 09:42:07,766 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1615246652] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:07,766 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:07,766 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 34] total 39 [2023-02-17 09:42:07,766 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2085464004] [2023-02-17 09:42:07,766 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:07,767 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:07,767 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:07,767 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2023-02-17 09:42:07,768 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=211, Unknown=0, NotChecked=0, Total=272 [2023-02-17 09:42:07,768 INFO L87 Difference]: Start difference. First operand 2195 states and 3968 transitions. cyclomatic complexity: 1798 Second operand has 17 states, 16 states have (on average 4.4375) internal successors, (71), 17 states have internal predecessors, (71), 11 states have call successors, (29), 2 states have call predecessors, (29), 6 states have return successors, (31), 9 states have call predecessors, (31), 11 states have call successors, (31) [2023-02-17 09:42:08,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:08,130 INFO L93 Difference]: Finished difference Result 2292 states and 4348 transitions. [2023-02-17 09:42:08,130 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2292 states and 4348 transitions. [2023-02-17 09:42:08,142 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 368 [2023-02-17 09:42:08,154 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2292 states to 2155 states and 4152 transitions. [2023-02-17 09:42:08,154 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 314 [2023-02-17 09:42:08,154 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 314 [2023-02-17 09:42:08,154 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2155 states and 4152 transitions. [2023-02-17 09:42:08,154 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:08,154 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2155 states and 4152 transitions. [2023-02-17 09:42:08,155 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2155 states and 4152 transitions. [2023-02-17 09:42:08,189 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2155 to 2077. [2023-02-17 09:42:08,191 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2077 states, 1266 states have (on average 1.04739336492891) internal successors, (1326), 1249 states have internal predecessors, (1326), 521 states have call successors, (554), 296 states have call predecessors, (554), 290 states have return successors, (2015), 531 states have call predecessors, (2015), 521 states have call successors, (2015) [2023-02-17 09:42:08,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2077 states to 2077 states and 3895 transitions. [2023-02-17 09:42:08,199 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2077 states and 3895 transitions. [2023-02-17 09:42:08,200 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2023-02-17 09:42:08,200 INFO L428 stractBuchiCegarLoop]: Abstraction has 2077 states and 3895 transitions. [2023-02-17 09:42:08,200 INFO L335 stractBuchiCegarLoop]: ======== Iteration 46 ============ [2023-02-17 09:42:08,200 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2077 states and 3895 transitions. [2023-02-17 09:42:08,206 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 320 [2023-02-17 09:42:08,206 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:08,206 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:08,209 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [73, 73, 43, 43, 43, 43, 30, 11, 10, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:08,209 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [90, 90, 69, 69, 69, 69, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:08,210 INFO L748 eck$LassoCheckResult]: Stem: 301168#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 301122#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 301123#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 301140#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 301132#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 301133#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302157#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 302146#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302147#$Ultimate##0 ~n := #in~n; 302150#L25 assume ~n <= 0;#res := 1; 302149#factFINAL assume true; 302145#factEXIT >#68#return; 302142#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302143#$Ultimate##0 ~n := #in~n; 302153#L25 assume ~n <= 0;#res := 1; 302151#factFINAL assume true; 302141#factEXIT >#70#return; 302138#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302139#$Ultimate##0 ~n := #in~n; 302156#L25 assume ~n <= 0;#res := 1; 302154#factFINAL assume true; 302137#factEXIT >#72#return; 302136#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302135#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 302132#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302126#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302125#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 302123#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302124#$Ultimate##0 ~n := #in~n; 302144#L25 assume !(~n <= 0); 302129#L26 call #t~ret0 := fact(~n - 1);< 302131#$Ultimate##0 ~n := #in~n; 302152#L25 assume ~n <= 0;#res := 1; 302140#factFINAL assume true; 302127#factEXIT >#66#return; 302130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302148#factFINAL assume true; 302122#factEXIT >#74#return; 302119#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302120#$Ultimate##0 ~n := #in~n; 302155#L25 assume ~n <= 0;#res := 1; 302133#factFINAL assume true; 302118#factEXIT >#76#return; 302113#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302114#$Ultimate##0 ~n := #in~n; 302134#L25 assume !(~n <= 0); 302128#L26 call #t~ret0 := fact(~n - 1);< 302131#$Ultimate##0 ~n := #in~n; 302152#L25 assume ~n <= 0;#res := 1; 302140#factFINAL assume true; 302127#factEXIT >#66#return; 302117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302116#factFINAL assume true; 302112#factEXIT >#78#return; 302111#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302110#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 302109#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302107#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302105#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 302057#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302059#$Ultimate##0 ~n := #in~n; 302074#L25 assume !(~n <= 0); 302068#L26 call #t~ret0 := fact(~n - 1);< 302070#$Ultimate##0 ~n := #in~n; 302098#L25 assume !(~n <= 0); 302069#L26 call #t~ret0 := fact(~n - 1);< 302095#$Ultimate##0 ~n := #in~n; 302104#L25 assume ~n <= 0;#res := 1; 302102#factFINAL assume true; 302099#factEXIT >#66#return; 302097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302094#factFINAL assume true; 302088#factEXIT >#66#return; 302090#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302121#factFINAL assume true; 302115#factEXIT >#74#return; 302076#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302077#$Ultimate##0 ~n := #in~n; 302108#L25 assume ~n <= 0;#res := 1; 302106#factFINAL assume true; 302075#factEXIT >#76#return; 302072#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302073#$Ultimate##0 ~n := #in~n; 302096#L25 assume !(~n <= 0); 302089#L26 call #t~ret0 := fact(~n - 1);< 302092#$Ultimate##0 ~n := #in~n; 302103#L25 assume !(~n <= 0); 302100#L26 call #t~ret0 := fact(~n - 1);< 302101#$Ultimate##0 ~n := #in~n; 302104#L25 assume ~n <= 0;#res := 1; 302102#factFINAL assume true; 302099#factEXIT >#66#return; 302097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302094#factFINAL assume true; 302088#factEXIT >#66#return; 302085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302084#factFINAL assume true; 302071#factEXIT >#78#return; 302066#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302064#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 302062#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302061#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302060#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 302058#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302059#$Ultimate##0 ~n := #in~n; 302074#L25 assume !(~n <= 0); 302068#L26 call #t~ret0 := fact(~n - 1);< 302070#$Ultimate##0 ~n := #in~n; 302098#L25 assume !(~n <= 0); 302069#L26 call #t~ret0 := fact(~n - 1);< 302095#$Ultimate##0 ~n := #in~n; 302098#L25 assume !(~n <= 0); 302069#L26 call #t~ret0 := fact(~n - 1);< 302095#$Ultimate##0 ~n := #in~n; 302104#L25 assume ~n <= 0;#res := 1; 302102#factFINAL assume true; 302099#factEXIT >#66#return; 302097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302094#factFINAL assume true; 302088#factEXIT >#66#return; 302091#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302087#factFINAL assume true; 302067#factEXIT >#66#return; 302065#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302063#factFINAL assume true; 302056#factEXIT >#74#return; 302052#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302054#$Ultimate##0 ~n := #in~n; 302082#L25 assume ~n <= 0;#res := 1; 302081#factFINAL assume true; 302051#factEXIT >#76#return; 301494#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 301976#$Ultimate##0 ~n := #in~n; 301975#L25 assume !(~n <= 0); 301907#L26 call #t~ret0 := fact(~n - 1);< 301968#$Ultimate##0 ~n := #in~n; 302007#L25 assume !(~n <= 0); 301909#L26 call #t~ret0 := fact(~n - 1);< 301915#$Ultimate##0 ~n := #in~n; 302006#L25 assume !(~n <= 0); 301911#L26 call #t~ret0 := fact(~n - 1);< 301999#$Ultimate##0 ~n := #in~n; 302005#L25 assume ~n <= 0;#res := 1; 302004#factFINAL assume true; 301998#factEXIT >#66#return; 301988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301987#factFINAL assume true; 301984#factEXIT >#66#return; 301983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301972#factFINAL assume true; 301967#factEXIT >#66#return; 301914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302158#factFINAL assume true; 301493#factEXIT >#78#return; 301492#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 301490#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 301491#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 301486#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 301487#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301362#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301363#$Ultimate##0 ~n := #in~n; 301380#L25 assume !(~n <= 0); 301376#L26 call #t~ret0 := fact(~n - 1);< 301378#$Ultimate##0 ~n := #in~n; 301396#L25 assume !(~n <= 0); 301377#L26 call #t~ret0 := fact(~n - 1);< 301394#$Ultimate##0 ~n := #in~n; 301396#L25 assume !(~n <= 0); 301377#L26 call #t~ret0 := fact(~n - 1);< 301394#$Ultimate##0 ~n := #in~n; 301396#L25 assume !(~n <= 0); 301377#L26 call #t~ret0 := fact(~n - 1);< 301394#$Ultimate##0 ~n := #in~n; 301423#L25 assume ~n <= 0;#res := 1; 301422#factFINAL assume true; 301420#factEXIT >#66#return; 301417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301415#factFINAL assume true; 301409#factEXIT >#66#return; 301408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301407#factFINAL assume true; 301393#factEXIT >#66#return; 301387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301384#factFINAL assume true; 301375#factEXIT >#66#return; 301368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301367#factFINAL assume true; 301361#factEXIT >#74#return; 301341#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301342#$Ultimate##0 ~n := #in~n; 301359#L25 assume ~n <= 0;#res := 1; 301358#factFINAL assume true; 301340#factEXIT >#76#return; 301327#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 301338#$Ultimate##0 ~n := #in~n; 301333#L25 assume !(~n <= 0); 301248#L26 call #t~ret0 := fact(~n - 1);< 301328#$Ultimate##0 ~n := #in~n; 301411#L25 assume !(~n <= 0); 301243#L26 call #t~ret0 := fact(~n - 1);< 301259#$Ultimate##0 ~n := #in~n; 301355#L25 assume !(~n <= 0); 301247#L26 call #t~ret0 := fact(~n - 1);< 301354#$Ultimate##0 ~n := #in~n; 301355#L25 assume !(~n <= 0); 301247#L26 call #t~ret0 := fact(~n - 1);< 301354#$Ultimate##0 ~n := #in~n; 301357#L25 assume ~n <= 0;#res := 1; 301356#factFINAL assume true; 301353#factEXIT >#66#return; 301351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301349#factFINAL assume true; 301348#factEXIT >#66#return; 301346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301344#factFINAL assume true; 301334#factEXIT >#66#return; 301330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301326#factFINAL assume true; 301289#factEXIT >#66#return; 301257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301435#factFINAL assume true; 301426#factEXIT >#78#return; 301124#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 301125#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 301141#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 301167#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 301134#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 301135#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 301154#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 301143#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301144#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302550#$Ultimate##0 ~n := #in~n; 302567#L25 assume !(~n <= 0); 302565#L26 call #t~ret0 := fact(~n - 1);< 302566#$Ultimate##0 ~n := #in~n; 302576#L25 assume ~n <= 0;#res := 1; 302575#factFINAL assume true; 302564#factEXIT >#66#return; 302563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302562#factFINAL assume true; 302549#factEXIT >#68#return; 302543#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301158#$Ultimate##0 ~n := #in~n; 302560#L25 assume ~n <= 0;#res := 1; 302559#factFINAL assume true; 302539#factEXIT >#70#return; 302522#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302523#$Ultimate##0 ~n := #in~n; 302548#L25 assume !(~n <= 0); 301091#L26 call #t~ret0 := fact(~n - 1);< 302533#$Ultimate##0 ~n := #in~n; 302555#L25 assume ~n <= 0;#res := 1; 302554#factFINAL assume true; 302532#factEXIT >#66#return; 302531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302526#factFINAL assume true; 302521#factEXIT >#72#return; 302520#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302519#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 302516#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302513#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 302459#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302503#$Ultimate##0 ~n := #in~n; 302553#L25 assume !(~n <= 0); 302282#L26 call #t~ret0 := fact(~n - 1);< 302366#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302510#factFINAL assume true; 302499#factEXIT >#68#return; 302464#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302497#$Ultimate##0 ~n := #in~n; 302517#L25 assume !(~n <= 0); 302277#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302510#factFINAL assume true; 302499#factEXIT >#70#return; 302409#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302432#$Ultimate##0 ~n := #in~n; 302435#L25 assume ~n <= 0;#res := 1; 302433#factFINAL assume true; 302408#factEXIT >#72#return; 302379#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302321#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 302319#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302289#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301192#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302267#$Ultimate##0 ~n := #in~n; 302602#L25 assume !(~n <= 0); 302274#L26 call #t~ret0 := fact(~n - 1);< 302366#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302272#factFINAL assume true; 302264#factEXIT >#74#return; 301201#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301166#$Ultimate##0 ~n := #in~n; 302509#L25 assume !(~n <= 0); 302283#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302268#factFINAL assume true; 302256#factEXIT >#76#return; 302258#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302407#$Ultimate##0 ~n := #in~n; 302518#L25 assume !(~n <= 0); 302281#L26 call #t~ret0 := fact(~n - 1);< 302287#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302268#factFINAL assume true; 302256#factEXIT >#78#return; 302262#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302404#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 302402#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302400#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302397#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301084#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301085#$Ultimate##0 ~n := #in~n; 302632#L25 assume !(~n <= 0); 302300#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302581#factFINAL assume true; 301179#factEXIT >#74#return; 301207#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301166#$Ultimate##0 ~n := #in~n; 302509#L25 assume !(~n <= 0); 302283#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302268#factFINAL assume true; 302256#factEXIT >#76#return; 301171#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 301172#$Ultimate##0 ~n := #in~n; 302578#L25 assume !(~n <= 0); 302279#L26 call #t~ret0 := fact(~n - 1);< 302313#$Ultimate##0 ~n := #in~n; 302629#L25 assume !(~n <= 0); 302616#L26 call #t~ret0 := fact(~n - 1);< 302617#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302272#factFINAL assume true; 302264#factEXIT >#78#return; 302266#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302335#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 302334#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302332#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302331#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301184#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301085#$Ultimate##0 ~n := #in~n; 302632#L25 assume !(~n <= 0); 302300#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302587#factFINAL assume true; 302369#factEXIT >#66#return; 302368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302320#factFINAL assume true; 302298#factEXIT >#74#return; 301180#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301166#$Ultimate##0 ~n := #in~n; 302509#L25 assume !(~n <= 0); 302283#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302268#factFINAL assume true; 302256#factEXIT >#76#return; 301181#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302317#$Ultimate##0 ~n := #in~n; 302434#L25 assume !(~n <= 0); 302370#L26 call #t~ret0 := fact(~n - 1);< 302377#$Ultimate##0 ~n := #in~n; 302628#L25 assume !(~n <= 0); 302302#L26 call #t~ret0 := fact(~n - 1);< 302612#$Ultimate##0 ~n := #in~n; 302655#L25 assume !(~n <= 0); 302308#L26 call #t~ret0 := fact(~n - 1);< 302330#$Ultimate##0 ~n := #in~n; 302629#L25 assume !(~n <= 0); 302616#L26 call #t~ret0 := fact(~n - 1);< 302617#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302587#factFINAL assume true; 302369#factEXIT >#66#return; 302368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302320#factFINAL assume true; 302298#factEXIT >#78#return; 301178#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 301177#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 301176#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 301175#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 301173#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301082#L30-5 [2023-02-17 09:42:08,210 INFO L750 eck$LassoCheckResult]: Loop: 301082#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301083#$Ultimate##0 ~n := #in~n; 301612#L25 assume !(~n <= 0); 301511#L26 call #t~ret0 := fact(~n - 1);< 301578#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301592#L25 assume ~n <= 0;#res := 1; 301600#factFINAL assume true; 301583#factEXIT >#66#return; 301581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301580#factFINAL assume true; 301545#factEXIT >#66#return; 301540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301537#factFINAL assume true; 301529#factEXIT >#66#return; 301527#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301522#factFINAL assume true; 301507#factEXIT >#66#return; 301520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301598#factFINAL assume true; 301595#factEXIT >#66#return; 301594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301593#factFINAL assume true; 301590#factEXIT >#66#return; 301587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301582#factFINAL assume true; 301576#factEXIT >#66#return; 301577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301615#factFINAL assume true; 301614#factEXIT >#66#return; 301613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301499#factFINAL assume true; 301215#factEXIT >#74#return; 301222#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301559#$Ultimate##0 ~n := #in~n; 301543#L25 assume !(~n <= 0); 301513#L26 call #t~ret0 := fact(~n - 1);< 301538#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301592#L25 assume ~n <= 0;#res := 1; 301600#factFINAL assume true; 301583#factEXIT >#66#return; 301581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301580#factFINAL assume true; 301545#factEXIT >#66#return; 301540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301537#factFINAL assume true; 301529#factEXIT >#66#return; 301527#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301522#factFINAL assume true; 301507#factEXIT >#66#return; 301520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301598#factFINAL assume true; 301595#factEXIT >#66#return; 301594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301593#factFINAL assume true; 301590#factEXIT >#66#return; 301587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301582#factFINAL assume true; 301576#factEXIT >#66#return; 301575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301573#factFINAL assume true; 301572#factEXIT >#76#return; 301221#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 301559#$Ultimate##0 ~n := #in~n; 301543#L25 assume !(~n <= 0); 301513#L26 call #t~ret0 := fact(~n - 1);< 301538#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301589#L25 assume !(~n <= 0); 301517#L26 call #t~ret0 := fact(~n - 1);< 301586#$Ultimate##0 ~n := #in~n; 301592#L25 assume ~n <= 0;#res := 1; 301600#factFINAL assume true; 301583#factEXIT >#66#return; 301581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301580#factFINAL assume true; 301545#factEXIT >#66#return; 301540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301537#factFINAL assume true; 301529#factEXIT >#66#return; 301527#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301522#factFINAL assume true; 301507#factEXIT >#66#return; 301520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301598#factFINAL assume true; 301595#factEXIT >#66#return; 301594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301593#factFINAL assume true; 301590#factEXIT >#66#return; 301587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301582#factFINAL assume true; 301576#factEXIT >#66#return; 301575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301573#factFINAL assume true; 301572#factEXIT >#78#return; 301223#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302574#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 302573#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302572#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 302571#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 302570#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 302569#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302568#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301118#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301119#$Ultimate##0 ~n := #in~n; 302992#L25 assume !(~n <= 0); 302989#L26 call #t~ret0 := fact(~n - 1);< 302991#$Ultimate##0 ~n := #in~n; 302577#L25 assume !(~n <= 0); 302988#L26 call #t~ret0 := fact(~n - 1);< 302994#$Ultimate##0 ~n := #in~n; 302577#L25 assume !(~n <= 0); 302988#L26 call #t~ret0 := fact(~n - 1);< 302994#$Ultimate##0 ~n := #in~n; 302995#L25 assume ~n <= 0;#res := 1; 303013#factFINAL assume true; 303012#factEXIT >#66#return; 303011#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 303010#factFINAL assume true; 303008#factEXIT >#66#return; 303007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 303006#factFINAL assume true; 303005#factEXIT >#66#return; 303002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 303014#factFINAL assume true; 303015#factEXIT >#68#return; 302540#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301158#$Ultimate##0 ~n := #in~n; 302560#L25 assume ~n <= 0;#res := 1; 302559#factFINAL assume true; 302539#factEXIT >#70#return; 301116#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 303029#$Ultimate##0 ~n := #in~n; 303027#L25 assume !(~n <= 0); 301089#L26 call #t~ret0 := fact(~n - 1);< 303022#$Ultimate##0 ~n := #in~n; 303020#L25 assume !(~n <= 0); 301092#L26 call #t~ret0 := fact(~n - 1);< 303018#$Ultimate##0 ~n := #in~n; 302556#L25 assume !(~n <= 0); 301087#L26 call #t~ret0 := fact(~n - 1);< 303017#$Ultimate##0 ~n := #in~n; 302556#L25 assume !(~n <= 0); 301087#L26 call #t~ret0 := fact(~n - 1);< 303017#$Ultimate##0 ~n := #in~n; 302556#L25 assume !(~n <= 0); 301087#L26 call #t~ret0 := fact(~n - 1);< 303017#$Ultimate##0 ~n := #in~n; 301150#L25 assume ~n <= 0;#res := 1; 301151#factFINAL assume true; 303074#factEXIT >#66#return; 303073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 303070#factFINAL assume true; 303066#factEXIT >#66#return; 303067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 301113#factFINAL assume true; 301086#factEXIT >#66#return; 301093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 303124#factFINAL assume true; 303120#factEXIT >#66#return; 303118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 303099#factFINAL assume true; 303097#factEXIT >#66#return; 303098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 303105#factFINAL assume true; 303040#factEXIT >#72#return; 301136#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 301137#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 302960#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302959#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302958#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 302467#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302634#$Ultimate##0 ~n := #in~n; 302638#L25 assume !(~n <= 0); 302305#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302311#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302633#factFINAL assume true; 302439#factEXIT >#68#return; 302470#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302497#$Ultimate##0 ~n := #in~n; 302517#L25 assume !(~n <= 0); 302277#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302514#L25 assume !(~n <= 0); 302303#L26 call #t~ret0 := fact(~n - 1);< 302511#$Ultimate##0 ~n := #in~n; 302621#L25 assume !(~n <= 0); 302307#L26 call #t~ret0 := fact(~n - 1);< 302619#$Ultimate##0 ~n := #in~n; 302655#L25 assume !(~n <= 0); 302308#L26 call #t~ret0 := fact(~n - 1);< 302330#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302587#factFINAL assume true; 302369#factEXIT >#66#return; 302375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302966#factFINAL assume true; 302657#factEXIT >#70#return; 302415#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302432#$Ultimate##0 ~n := #in~n; 302435#L25 assume ~n <= 0;#res := 1; 302433#factFINAL assume true; 302408#factEXIT >#72#return; 302428#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302946#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 302656#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302650#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302649#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 302466#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 302634#$Ultimate##0 ~n := #in~n; 302638#L25 assume !(~n <= 0); 302305#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302658#factFINAL assume true; 302557#factEXIT >#68#return; 302444#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302497#$Ultimate##0 ~n := #in~n; 302517#L25 assume !(~n <= 0); 302277#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302514#L25 assume !(~n <= 0); 302303#L26 call #t~ret0 := fact(~n - 1);< 302511#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302311#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302633#factFINAL assume true; 302439#factEXIT >#70#return; 302325#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302601#$Ultimate##0 ~n := #in~n; 302643#L25 assume ~n <= 0;#res := 1; 302433#factFINAL assume true; 302408#factEXIT >#72#return; 302431#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302498#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 302438#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302437#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302436#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301183#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301085#$Ultimate##0 ~n := #in~n; 302632#L25 assume !(~n <= 0); 302300#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302581#factFINAL assume true; 301179#factEXIT >#74#return; 301197#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301166#$Ultimate##0 ~n := #in~n; 302509#L25 assume !(~n <= 0); 302283#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302268#factFINAL assume true; 302256#factEXIT >#76#return; 302260#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 301172#$Ultimate##0 ~n := #in~n; 302578#L25 assume !(~n <= 0); 302279#L26 call #t~ret0 := fact(~n - 1);< 302313#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302268#factFINAL assume true; 302256#factEXIT >#78#return; 302263#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302392#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 302384#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302382#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302380#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301190#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301085#$Ultimate##0 ~n := #in~n; 302632#L25 assume !(~n <= 0); 302300#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302587#factFINAL assume true; 302369#factEXIT >#66#return; 302368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302320#factFINAL assume true; 302298#factEXIT >#74#return; 301193#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 301166#$Ultimate##0 ~n := #in~n; 302509#L25 assume !(~n <= 0); 302283#L26 call #t~ret0 := fact(~n - 1);< 302391#$Ultimate##0 ~n := #in~n; 302514#L25 assume !(~n <= 0); 302303#L26 call #t~ret0 := fact(~n - 1);< 302511#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302272#factFINAL assume true; 302264#factEXIT >#76#return; 302257#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 301172#$Ultimate##0 ~n := #in~n; 302578#L25 assume !(~n <= 0); 302279#L26 call #t~ret0 := fact(~n - 1);< 302313#$Ultimate##0 ~n := #in~n; 302629#L25 assume !(~n <= 0); 302616#L26 call #t~ret0 := fact(~n - 1);< 302617#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302272#factFINAL assume true; 302264#factEXIT >#78#return; 302265#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 302396#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 302395#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 302394#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 302393#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301174#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 301085#$Ultimate##0 ~n := #in~n; 302632#L25 assume !(~n <= 0); 302300#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302587#factFINAL assume true; 302369#factEXIT >#66#return; 302373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302504#factFINAL assume true; 302385#factEXIT >#66#return; 302387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302534#factFINAL assume true; 302527#factEXIT >#66#return; 302525#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302524#factFINAL assume true; 302316#factEXIT >#74#return; 301200#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 302267#$Ultimate##0 ~n := #in~n; 302602#L25 assume !(~n <= 0); 302274#L26 call #t~ret0 := fact(~n - 1);< 302366#$Ultimate##0 ~n := #in~n; 302315#L25 assume ~n <= 0;#res := 1; 302290#factFINAL assume true; 302273#factEXIT >#66#return; 302271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302268#factFINAL assume true; 302256#factEXIT >#76#return; 301196#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 302318#$Ultimate##0 ~n := #in~n; 302653#L25 assume !(~n <= 0); 302348#L26 call #t~ret0 := fact(~n - 1);< 302376#$Ultimate##0 ~n := #in~n; 302641#L25 assume !(~n <= 0); 302301#L26 call #t~ret0 := fact(~n - 1);< 302507#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302631#L25 assume !(~n <= 0); 302306#L26 call #t~ret0 := fact(~n - 1);< 302618#$Ultimate##0 ~n := #in~n; 302623#L25 assume ~n <= 0;#res := 1; 302627#factFINAL assume true; 302615#factEXIT >#66#return; 302582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302323#factFINAL assume true; 302299#factEXIT >#66#return; 302310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302654#factFINAL assume true; 302608#factEXIT >#66#return; 302606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302587#factFINAL assume true; 302369#factEXIT >#66#return; 302373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302504#factFINAL assume true; 302385#factEXIT >#66#return; 302387#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302534#factFINAL assume true; 302527#factEXIT >#66#return; 302528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302605#factFINAL assume true; 302584#factEXIT >#66#return; 302365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302592#factFINAL assume true; 302343#factEXIT >#66#return; 302341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 302339#factFINAL assume true; 302338#factEXIT >#78#return; 301178#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 301177#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 301176#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 301175#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 301173#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 301082#L30-5 [2023-02-17 09:42:08,210 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:08,210 INFO L85 PathProgramCache]: Analyzing trace with hash 647119094, now seen corresponding path program 23 times [2023-02-17 09:42:08,211 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:08,211 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1036567877] [2023-02-17 09:42:08,211 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:08,211 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:08,228 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:08,228 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1931170713] [2023-02-17 09:42:08,229 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:08,229 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:08,229 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:08,240 INFO L229 MonitoredProcess]: Starting monitored process 195 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:08,263 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (195)] Waiting until timeout for monitored process [2023-02-17 09:42:08,849 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 25 check-sat command(s) [2023-02-17 09:42:08,849 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:08,854 INFO L263 TraceCheckSpWp]: Trace formula consists of 1034 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-17 09:42:08,857 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:08,931 INFO L134 CoverageAnalysis]: Checked inductivity of 12605 backedges. 1997 proven. 328 refuted. 0 times theorem prover too weak. 10280 trivial. 0 not checked. [2023-02-17 09:42:08,931 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:09,116 INFO L134 CoverageAnalysis]: Checked inductivity of 12605 backedges. 1997 proven. 344 refuted. 0 times theorem prover too weak. 10264 trivial. 0 not checked. [2023-02-17 09:42:09,116 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:09,116 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1036567877] [2023-02-17 09:42:09,116 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:09,116 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1931170713] [2023-02-17 09:42:09,117 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1931170713] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:09,117 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:09,117 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 22] total 26 [2023-02-17 09:42:09,117 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1626263185] [2023-02-17 09:42:09,117 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:09,118 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:09,118 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:09,118 INFO L85 PathProgramCache]: Analyzing trace with hash 61175021, now seen corresponding path program 17 times [2023-02-17 09:42:09,118 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:09,118 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1217483371] [2023-02-17 09:42:09,118 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:09,118 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:09,131 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:09,131 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [437970227] [2023-02-17 09:42:09,131 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:09,131 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:09,131 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:09,135 INFO L229 MonitoredProcess]: Starting monitored process 196 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:09,137 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (196)] Waiting until timeout for monitored process [2023-02-17 09:42:09,568 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 28 check-sat command(s) [2023-02-17 09:42:09,568 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:09,569 INFO L263 TraceCheckSpWp]: Trace formula consists of 296 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:42:09,573 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:09,632 INFO L134 CoverageAnalysis]: Checked inductivity of 20827 backedges. 11120 proven. 144 refuted. 0 times theorem prover too weak. 9563 trivial. 0 not checked. [2023-02-17 09:42:09,632 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:09,804 INFO L134 CoverageAnalysis]: Checked inductivity of 20827 backedges. 1004 proven. 2004 refuted. 0 times theorem prover too weak. 17819 trivial. 0 not checked. [2023-02-17 09:42:09,804 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:09,804 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1217483371] [2023-02-17 09:42:09,805 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:09,805 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [437970227] [2023-02-17 09:42:09,805 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [437970227] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:09,805 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:09,806 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 21] total 24 [2023-02-17 09:42:09,806 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2023280458] [2023-02-17 09:42:09,806 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:09,807 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:09,807 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:09,810 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2023-02-17 09:42:09,811 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=88, Invalid=562, Unknown=0, NotChecked=0, Total=650 [2023-02-17 09:42:09,811 INFO L87 Difference]: Start difference. First operand 2077 states and 3895 transitions. cyclomatic complexity: 1841 Second operand has 26 states, 21 states have (on average 3.3333333333333335) internal successors, (70), 24 states have internal predecessors, (70), 16 states have call successors, (26), 1 states have call predecessors, (26), 8 states have return successors, (30), 13 states have call predecessors, (30), 16 states have call successors, (30) [2023-02-17 09:42:10,829 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:10,829 INFO L93 Difference]: Finished difference Result 2566 states and 5301 transitions. [2023-02-17 09:42:10,829 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2566 states and 5301 transitions. [2023-02-17 09:42:10,844 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 729 [2023-02-17 09:42:10,858 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2566 states to 2566 states and 5301 transitions. [2023-02-17 09:42:10,858 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 324 [2023-02-17 09:42:10,859 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 324 [2023-02-17 09:42:10,859 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2566 states and 5301 transitions. [2023-02-17 09:42:10,859 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:10,859 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2566 states and 5301 transitions. [2023-02-17 09:42:10,860 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2566 states and 5301 transitions. [2023-02-17 09:42:10,892 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2566 to 2079. [2023-02-17 09:42:10,894 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2079 states, 1266 states have (on average 1.04739336492891) internal successors, (1326), 1249 states have internal predecessors, (1326), 523 states have call successors, (556), 296 states have call predecessors, (556), 290 states have return successors, (2018), 533 states have call predecessors, (2018), 523 states have call successors, (2018) [2023-02-17 09:42:10,900 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2079 states to 2079 states and 3900 transitions. [2023-02-17 09:42:10,900 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2079 states and 3900 transitions. [2023-02-17 09:42:10,901 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 36 states. [2023-02-17 09:42:10,901 INFO L428 stractBuchiCegarLoop]: Abstraction has 2079 states and 3900 transitions. [2023-02-17 09:42:10,901 INFO L335 stractBuchiCegarLoop]: ======== Iteration 47 ============ [2023-02-17 09:42:10,901 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2079 states and 3900 transitions. [2023-02-17 09:42:10,906 INFO L131 ngComponentsAnalysis]: Automaton has 1 accepting balls. 320 [2023-02-17 09:42:10,906 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:10,906 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:10,908 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [72, 72, 42, 42, 42, 42, 30, 11, 10, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:10,908 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [83, 83, 62, 62, 62, 62, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:10,909 INFO L748 eck$LassoCheckResult]: Stem: 312045#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 311996#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 311997#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 312015#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 312007#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 312008#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313024#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 313020#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 313021#$Ultimate##0 ~n := #in~n; 313025#L25 assume ~n <= 0;#res := 1; 313023#factFINAL assume true; 313019#factEXIT >#68#return; 313015#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313016#$Ultimate##0 ~n := #in~n; 313022#L25 assume ~n <= 0;#res := 1; 313018#factFINAL assume true; 313014#factEXIT >#70#return; 313011#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313012#$Ultimate##0 ~n := #in~n; 313017#L25 assume ~n <= 0;#res := 1; 313013#factFINAL assume true; 313010#factEXIT >#72#return; 313009#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313008#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 313007#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313005#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313001#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312992#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 312993#$Ultimate##0 ~n := #in~n; 313004#L25 assume !(~n <= 0); 312995#L26 call #t~ret0 := fact(~n - 1);< 312998#$Ultimate##0 ~n := #in~n; 313006#L25 assume ~n <= 0;#res := 1; 313002#factFINAL assume true; 312994#factEXIT >#66#return; 312997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313000#factFINAL assume true; 312991#factEXIT >#74#return; 312987#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 312988#$Ultimate##0 ~n := #in~n; 312999#L25 assume ~n <= 0;#res := 1; 312990#factFINAL assume true; 312986#factEXIT >#76#return; 312983#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 312984#$Ultimate##0 ~n := #in~n; 313003#L25 assume !(~n <= 0); 312996#L26 call #t~ret0 := fact(~n - 1);< 312998#$Ultimate##0 ~n := #in~n; 313006#L25 assume ~n <= 0;#res := 1; 313002#factFINAL assume true; 312994#factEXIT >#66#return; 312989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312985#factFINAL assume true; 312982#factEXIT >#78#return; 312981#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 312980#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 312979#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 312978#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 312977#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312914#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 312916#$Ultimate##0 ~n := #in~n; 312974#L25 assume !(~n <= 0); 312943#L26 call #t~ret0 := fact(~n - 1);< 312944#$Ultimate##0 ~n := #in~n; 312963#L25 assume !(~n <= 0); 312942#L26 call #t~ret0 := fact(~n - 1);< 312962#$Ultimate##0 ~n := #in~n; 312971#L25 assume ~n <= 0;#res := 1; 312970#factFINAL assume true; 312965#factEXIT >#66#return; 312964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312961#factFINAL assume true; 312955#factEXIT >#66#return; 312958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313054#factFINAL assume true; 313053#factEXIT >#74#return; 313051#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313052#$Ultimate##0 ~n := #in~n; 313061#L25 assume ~n <= 0;#res := 1; 313060#factFINAL assume true; 313050#factEXIT >#76#return; 312946#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 312947#$Ultimate##0 ~n := #in~n; 312960#L25 assume !(~n <= 0); 312956#L26 call #t~ret0 := fact(~n - 1);< 312959#$Ultimate##0 ~n := #in~n; 312969#L25 assume !(~n <= 0); 312966#L26 call #t~ret0 := fact(~n - 1);< 312967#$Ultimate##0 ~n := #in~n; 312971#L25 assume ~n <= 0;#res := 1; 312970#factFINAL assume true; 312965#factEXIT >#66#return; 312964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312961#factFINAL assume true; 312955#factEXIT >#66#return; 312954#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312952#factFINAL assume true; 312945#factEXIT >#78#return; 312927#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 312921#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 312920#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 312919#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 312918#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312915#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 312916#$Ultimate##0 ~n := #in~n; 312974#L25 assume !(~n <= 0); 312943#L26 call #t~ret0 := fact(~n - 1);< 312944#$Ultimate##0 ~n := #in~n; 312963#L25 assume !(~n <= 0); 312942#L26 call #t~ret0 := fact(~n - 1);< 312962#$Ultimate##0 ~n := #in~n; 312963#L25 assume !(~n <= 0); 312942#L26 call #t~ret0 := fact(~n - 1);< 312962#$Ultimate##0 ~n := #in~n; 312971#L25 assume ~n <= 0;#res := 1; 312970#factFINAL assume true; 312965#factEXIT >#66#return; 312964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312961#factFINAL assume true; 312955#factEXIT >#66#return; 312957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312973#factFINAL assume true; 312941#factEXIT >#66#return; 312940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312926#factFINAL assume true; 312913#factEXIT >#74#return; 312898#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 312899#$Ultimate##0 ~n := #in~n; 312923#L25 assume ~n <= 0;#res := 1; 312910#factFINAL assume true; 312897#factEXIT >#76#return; 312760#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 312766#$Ultimate##0 ~n := #in~n; 312763#L25 assume !(~n <= 0); 312742#L26 call #t~ret0 := fact(~n - 1);< 312756#$Ultimate##0 ~n := #in~n; 312783#L25 assume !(~n <= 0); 312738#L26 call #t~ret0 := fact(~n - 1);< 312746#$Ultimate##0 ~n := #in~n; 312780#L25 assume !(~n <= 0); 312740#L26 call #t~ret0 := fact(~n - 1);< 312777#$Ultimate##0 ~n := #in~n; 312781#L25 assume ~n <= 0;#res := 1; 312779#factFINAL assume true; 312776#factEXIT >#66#return; 312771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312770#factFINAL assume true; 312765#factEXIT >#66#return; 312762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312758#factFINAL assume true; 312755#factEXIT >#66#return; 312745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312975#factFINAL assume true; 312896#factEXIT >#78#return; 312895#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 312894#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 312893#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 312891#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 312227#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312209#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 312210#$Ultimate##0 ~n := #in~n; 312222#L25 assume !(~n <= 0); 312219#L26 call #t~ret0 := fact(~n - 1);< 312221#$Ultimate##0 ~n := #in~n; 312260#L25 assume !(~n <= 0); 312220#L26 call #t~ret0 := fact(~n - 1);< 312258#$Ultimate##0 ~n := #in~n; 312260#L25 assume !(~n <= 0); 312220#L26 call #t~ret0 := fact(~n - 1);< 312258#$Ultimate##0 ~n := #in~n; 312260#L25 assume !(~n <= 0); 312220#L26 call #t~ret0 := fact(~n - 1);< 312258#$Ultimate##0 ~n := #in~n; 312282#L25 assume ~n <= 0;#res := 1; 312281#factFINAL assume true; 312279#factEXIT >#66#return; 312277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312276#factFINAL assume true; 312273#factEXIT >#66#return; 312271#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312270#factFINAL assume true; 312257#factEXIT >#66#return; 312255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312253#factFINAL assume true; 312218#factEXIT >#66#return; 312216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312214#factFINAL assume true; 312208#factEXIT >#74#return; 312205#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 312206#$Ultimate##0 ~n := #in~n; 312250#L25 assume ~n <= 0;#res := 1; 312248#factFINAL assume true; 312204#factEXIT >#76#return; 312063#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 312137#$Ultimate##0 ~n := #in~n; 312135#L25 assume !(~n <= 0); 312083#L26 call #t~ret0 := fact(~n - 1);< 312133#$Ultimate##0 ~n := #in~n; 312200#L25 assume !(~n <= 0); 312082#L26 call #t~ret0 := fact(~n - 1);< 312097#$Ultimate##0 ~n := #in~n; 312195#L25 assume !(~n <= 0); 312086#L26 call #t~ret0 := fact(~n - 1);< 312192#$Ultimate##0 ~n := #in~n; 312195#L25 assume !(~n <= 0); 312086#L26 call #t~ret0 := fact(~n - 1);< 312192#$Ultimate##0 ~n := #in~n; 312198#L25 assume ~n <= 0;#res := 1; 312197#factFINAL assume true; 312191#factEXIT >#66#return; 312189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312187#factFINAL assume true; 312182#factEXIT >#66#return; 312180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312179#factFINAL assume true; 312177#factEXIT >#66#return; 312173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312132#factFINAL assume true; 312121#factEXIT >#66#return; 312094#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312323#factFINAL assume true; 312062#factEXIT >#78#return; 311998#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 311999#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 312016#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 312044#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 312013#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 312014#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 312030#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 312018#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312019#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 313147#$Ultimate##0 ~n := #in~n; 313148#L25 assume !(~n <= 0); 313656#L26 call #t~ret0 := fact(~n - 1);< 313657#$Ultimate##0 ~n := #in~n; 313667#L25 assume ~n <= 0;#res := 1; 313666#factFINAL assume true; 313655#factEXIT >#66#return; 313653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313652#factFINAL assume true; 313651#factEXIT >#68#return; 313140#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 312033#$Ultimate##0 ~n := #in~n; 313146#L25 assume ~n <= 0;#res := 1; 313145#factFINAL assume true; 313134#factEXIT >#70#return; 313143#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313649#$Ultimate##0 ~n := #in~n; 313663#L25 assume !(~n <= 0); 313660#L26 call #t~ret0 := fact(~n - 1);< 313661#$Ultimate##0 ~n := #in~n; 313664#L25 assume ~n <= 0;#res := 1; 313662#factFINAL assume true; 313659#factEXIT >#66#return; 313658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313654#factFINAL assume true; 313648#factEXIT >#72#return; 313392#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313389#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 313388#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313386#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313385#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 313368#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 313383#$Ultimate##0 ~n := #in~n; 313419#L25 assume !(~n <= 0); 313181#L26 call #t~ret0 := fact(~n - 1);< 313219#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313395#factFINAL assume true; 313379#factEXIT >#68#return; 313320#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313346#$Ultimate##0 ~n := #in~n; 313342#L25 assume !(~n <= 0); 313179#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313395#factFINAL assume true; 313379#factEXIT >#70#return; 313330#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313339#$Ultimate##0 ~n := #in~n; 313344#L25 assume ~n <= 0;#res := 1; 313267#factFINAL assume true; 313326#factEXIT >#72#return; 313324#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313302#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 313300#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313273#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313272#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312352#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 312043#$Ultimate##0 ~n := #in~n; 313493#L25 assume !(~n <= 0); 313178#L26 call #t~ret0 := fact(~n - 1);< 313219#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313263#factFINAL assume true; 313255#factEXIT >#74#return; 312342#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313168#$Ultimate##0 ~n := #in~n; 313325#L25 assume !(~n <= 0); 313182#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313169#factFINAL assume true; 313159#factEXIT >#76#return; 313165#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313242#$Ultimate##0 ~n := #in~n; 313253#L25 assume !(~n <= 0); 313180#L26 call #t~ret0 := fact(~n - 1);< 313189#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313169#factFINAL assume true; 313159#factEXIT >#78#return; 313167#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313233#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 313220#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313191#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313174#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312361#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 311974#$Ultimate##0 ~n := #in~n; 313650#L25 assume !(~n <= 0); 313209#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313172#factFINAL assume true; 313170#factEXIT >#74#return; 312359#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313168#$Ultimate##0 ~n := #in~n; 313325#L25 assume !(~n <= 0); 313182#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313169#factFINAL assume true; 313159#factEXIT >#76#return; 313160#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313264#$Ultimate##0 ~n := #in~n; 313265#L25 assume !(~n <= 0); 313176#L26 call #t~ret0 := fact(~n - 1);< 313244#$Ultimate##0 ~n := #in~n; 313274#L25 assume !(~n <= 0); 313260#L26 call #t~ret0 := fact(~n - 1);< 313261#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313263#factFINAL assume true; 313255#factEXIT >#78#return; 313256#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313482#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 313480#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313478#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313471#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312334#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 311974#$Ultimate##0 ~n := #in~n; 313650#L25 assume !(~n <= 0); 313209#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313422#factFINAL assume true; 313414#factEXIT >#66#return; 313416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313617#factFINAL assume true; 312331#factEXIT >#74#return; 312335#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313168#$Ultimate##0 ~n := #in~n; 313325#L25 assume !(~n <= 0); 313182#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313169#factFINAL assume true; 313159#factEXIT >#76#return; 312345#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313297#$Ultimate##0 ~n := #in~n; 313290#L25 assume !(~n <= 0); 313206#L26 call #t~ret0 := fact(~n - 1);< 313277#$Ultimate##0 ~n := #in~n; 313276#L25 assume !(~n <= 0); 313207#L26 call #t~ret0 := fact(~n - 1);< 313268#$Ultimate##0 ~n := #in~n; 313254#L25 assume !(~n <= 0); 313236#L26 call #t~ret0 := fact(~n - 1);< 313241#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313172#factFINAL assume true; 313170#factEXIT >#78#return; 312329#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 312327#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 312052#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 312051#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 312049#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 311971#L30-5 [2023-02-17 09:42:10,909 INFO L750 eck$LassoCheckResult]: Loop: 311971#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 311972#$Ultimate##0 ~n := #in~n; 312486#L25 assume !(~n <= 0); 312386#L26 call #t~ret0 := fact(~n - 1);< 312455#$Ultimate##0 ~n := #in~n; 312476#L25 assume !(~n <= 0); 312382#L26 call #t~ret0 := fact(~n - 1);< 312460#$Ultimate##0 ~n := #in~n; 312476#L25 assume !(~n <= 0); 312382#L26 call #t~ret0 := fact(~n - 1);< 312460#$Ultimate##0 ~n := #in~n; 312476#L25 assume !(~n <= 0); 312382#L26 call #t~ret0 := fact(~n - 1);< 312460#$Ultimate##0 ~n := #in~n; 312476#L25 assume !(~n <= 0); 312382#L26 call #t~ret0 := fact(~n - 1);< 312460#$Ultimate##0 ~n := #in~n; 312465#L25 assume ~n <= 0;#res := 1; 312477#factFINAL assume true; 312458#factEXIT >#66#return; 312457#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312456#factFINAL assume true; 312418#factEXIT >#66#return; 312413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312410#factFINAL assume true; 312402#factEXIT >#66#return; 312400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312395#factFINAL assume true; 312380#factEXIT >#66#return; 312393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312474#factFINAL assume true; 312472#factEXIT >#66#return; 312473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312471#factFINAL assume true; 312468#factEXIT >#74#return; 312373#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 312041#$Ultimate##0 ~n := #in~n; 312417#L25 assume !(~n <= 0); 312383#L26 call #t~ret0 := fact(~n - 1);< 312408#$Ultimate##0 ~n := #in~n; 312409#L25 assume ~n <= 0;#res := 1; 312483#factFINAL assume true; 312452#factEXIT >#66#return; 312450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312449#factFINAL assume true; 312442#factEXIT >#76#return; 312375#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 312440#$Ultimate##0 ~n := #in~n; 312439#L25 assume !(~n <= 0); 312388#L26 call #t~ret0 := fact(~n - 1);< 312437#$Ultimate##0 ~n := #in~n; 312435#L25 assume !(~n <= 0); 312403#L26 call #t~ret0 := fact(~n - 1);< 312406#$Ultimate##0 ~n := #in~n; 312487#L25 assume !(~n <= 0); 312419#L26 call #t~ret0 := fact(~n - 1);< 312423#$Ultimate##0 ~n := #in~n; 312463#L25 assume !(~n <= 0); 312459#L26 call #t~ret0 := fact(~n - 1);< 312461#$Ultimate##0 ~n := #in~n; 312465#L25 assume ~n <= 0;#res := 1; 312477#factFINAL assume true; 312458#factEXIT >#66#return; 312457#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312456#factFINAL assume true; 312418#factEXIT >#66#return; 312413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312410#factFINAL assume true; 312402#factEXIT >#66#return; 312400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312395#factFINAL assume true; 312380#factEXIT >#66#return; 312379#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 312377#factFINAL assume true; 312374#factEXIT >#78#return; 312061#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313155#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 313154#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313153#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 313152#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 313151#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 313150#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313149#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 311986#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 311987#$Ultimate##0 ~n := #in~n; 313687#L25 assume !(~n <= 0); 313683#L26 call #t~ret0 := fact(~n - 1);< 313686#$Ultimate##0 ~n := #in~n; 313668#L25 assume !(~n <= 0); 313684#L26 call #t~ret0 := fact(~n - 1);< 313701#$Ultimate##0 ~n := #in~n; 313668#L25 assume !(~n <= 0); 313684#L26 call #t~ret0 := fact(~n - 1);< 313701#$Ultimate##0 ~n := #in~n; 313668#L25 assume !(~n <= 0); 313684#L26 call #t~ret0 := fact(~n - 1);< 313701#$Ultimate##0 ~n := #in~n; 313668#L25 assume !(~n <= 0); 313684#L26 call #t~ret0 := fact(~n - 1);< 313701#$Ultimate##0 ~n := #in~n; 313702#L25 assume ~n <= 0;#res := 1; 313735#factFINAL assume true; 313734#factEXIT >#66#return; 313733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313732#factFINAL assume true; 313730#factEXIT >#66#return; 313729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313728#factFINAL assume true; 313727#factEXIT >#66#return; 313726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313725#factFINAL assume true; 313723#factEXIT >#66#return; 313722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313721#factFINAL assume true; 313718#factEXIT >#66#return; 313720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313757#factFINAL assume true; 313133#factEXIT >#68#return; 312032#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 312033#$Ultimate##0 ~n := #in~n; 313146#L25 assume ~n <= 0;#res := 1; 313145#factFINAL assume true; 313134#factEXIT >#70#return; 313144#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313933#$Ultimate##0 ~n := #in~n; 313930#L25 assume !(~n <= 0); 313921#L26 call #t~ret0 := fact(~n - 1);< 313926#$Ultimate##0 ~n := #in~n; 313924#L25 assume !(~n <= 0); 313913#L26 call #t~ret0 := fact(~n - 1);< 313920#$Ultimate##0 ~n := #in~n; 313915#L25 assume !(~n <= 0); 313905#L26 call #t~ret0 := fact(~n - 1);< 313911#$Ultimate##0 ~n := #in~n; 313908#L25 assume !(~n <= 0); 313902#L26 call #t~ret0 := fact(~n - 1);< 313904#$Ultimate##0 ~n := #in~n; 313665#L25 assume !(~n <= 0); 311981#L26 call #t~ret0 := fact(~n - 1);< 313900#$Ultimate##0 ~n := #in~n; 313665#L25 assume !(~n <= 0); 311981#L26 call #t~ret0 := fact(~n - 1);< 313900#$Ultimate##0 ~n := #in~n; 312025#L25 assume ~n <= 0;#res := 1; 312026#factFINAL assume true; 311980#factEXIT >#66#return; 311982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 314049#factFINAL assume true; 314047#factEXIT >#66#return; 314048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 314046#factFINAL assume true; 314044#factEXIT >#66#return; 314042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 314041#factFINAL assume true; 314040#factEXIT >#66#return; 314039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 314035#factFINAL assume true; 314033#factEXIT >#66#return; 314034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 314036#factFINAL assume true; 314028#factEXIT >#66#return; 314024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 314020#factFINAL assume true; 314016#factEXIT >#72#return; 312009#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 312010#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 313712#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313710#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313707#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 313371#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 313505#$Ultimate##0 ~n := #in~n; 313492#L25 assume !(~n <= 0); 313212#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313422#factFINAL assume true; 313414#factEXIT >#66#return; 313417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313630#factFINAL assume true; 313627#factEXIT >#68#return; 313323#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313346#$Ultimate##0 ~n := #in~n; 313342#L25 assume !(~n <= 0); 313179#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313299#L25 assume !(~n <= 0); 313211#L26 call #t~ret0 := fact(~n - 1);< 313288#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313628#factFINAL assume true; 313347#factEXIT >#70#return; 313250#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313275#$Ultimate##0 ~n := #in~n; 313266#L25 assume ~n <= 0;#res := 1; 313267#factFINAL assume true; 313326#factEXIT >#72#return; 313334#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313706#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 313705#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313704#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313703#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 313349#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 313505#$Ultimate##0 ~n := #in~n; 313492#L25 assume !(~n <= 0); 313212#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313422#factFINAL assume true; 313414#factEXIT >#66#return; 313417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313630#factFINAL assume true; 313627#factEXIT >#68#return; 313316#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313346#$Ultimate##0 ~n := #in~n; 313342#L25 assume !(~n <= 0); 313179#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313299#L25 assume !(~n <= 0); 313211#L26 call #t~ret0 := fact(~n - 1);< 313288#$Ultimate##0 ~n := #in~n; 313281#L25 assume !(~n <= 0); 313213#L26 call #t~ret0 := fact(~n - 1);< 313271#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313631#factFINAL assume true; 313625#factEXIT >#70#return; 313193#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313611#$Ultimate##0 ~n := #in~n; 313612#L25 assume ~n <= 0;#res := 1; 313267#factFINAL assume true; 313326#factEXIT >#72#return; 313338#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313688#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 313677#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313672#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313647#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312338#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 311974#$Ultimate##0 ~n := #in~n; 313650#L25 assume !(~n <= 0); 313209#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313172#factFINAL assume true; 313170#factEXIT >#74#return; 312333#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313168#$Ultimate##0 ~n := #in~n; 313325#L25 assume !(~n <= 0); 313182#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313169#factFINAL assume true; 313159#factEXIT >#76#return; 313164#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313264#$Ultimate##0 ~n := #in~n; 313265#L25 assume !(~n <= 0); 313176#L26 call #t~ret0 := fact(~n - 1);< 313244#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313169#factFINAL assume true; 313159#factEXIT >#78#return; 312000#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 312001#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 312017#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313681#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313622#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 311973#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 311974#$Ultimate##0 ~n := #in~n; 313650#L25 assume !(~n <= 0); 313209#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313422#factFINAL assume true; 313414#factEXIT >#66#return; 313416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313617#factFINAL assume true; 312331#factEXIT >#74#return; 312339#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 313168#$Ultimate##0 ~n := #in~n; 313325#L25 assume !(~n <= 0); 313182#L26 call #t~ret0 := fact(~n - 1);< 313301#$Ultimate##0 ~n := #in~n; 313299#L25 assume !(~n <= 0); 313211#L26 call #t~ret0 := fact(~n - 1);< 313288#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313263#factFINAL assume true; 313255#factEXIT >#76#return; 313161#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313264#$Ultimate##0 ~n := #in~n; 313265#L25 assume !(~n <= 0); 313176#L26 call #t~ret0 := fact(~n - 1);< 313244#$Ultimate##0 ~n := #in~n; 313274#L25 assume !(~n <= 0); 313260#L26 call #t~ret0 := fact(~n - 1);< 313261#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313263#factFINAL assume true; 313255#factEXIT >#78#return; 313257#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 313507#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 313502#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 313491#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 313393#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 312050#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 311974#$Ultimate##0 ~n := #in~n; 313650#L25 assume !(~n <= 0); 313209#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313422#factFINAL assume true; 313414#factEXIT >#66#return; 313410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313409#factFINAL assume true; 313396#factEXIT >#66#return; 313406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313432#factFINAL assume true; 313424#factEXIT >#66#return; 313428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313465#factFINAL assume true; 313461#factEXIT >#66#return; 313462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313156#factFINAL assume true; 313158#factEXIT >#74#return; 312356#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 312043#$Ultimate##0 ~n := #in~n; 313493#L25 assume !(~n <= 0); 313178#L26 call #t~ret0 := fact(~n - 1);< 313219#$Ultimate##0 ~n := #in~n; 313221#L25 assume ~n <= 0;#res := 1; 313192#factFINAL assume true; 313175#factEXIT >#66#return; 313171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313169#factFINAL assume true; 313159#factEXIT >#76#return; 312355#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 313431#$Ultimate##0 ~n := #in~n; 313430#L25 assume !(~n <= 0); 313402#L26 call #t~ret0 := fact(~n - 1);< 313418#$Ultimate##0 ~n := #in~n; 313438#L25 assume !(~n <= 0); 313210#L26 call #t~ret0 := fact(~n - 1);< 313226#$Ultimate##0 ~n := #in~n; 313496#L25 assume !(~n <= 0); 313203#L26 call #t~ret0 := fact(~n - 1);< 313218#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313618#L25 assume !(~n <= 0); 313204#L26 call #t~ret0 := fact(~n - 1);< 313262#$Ultimate##0 ~n := #in~n; 313270#L25 assume ~n <= 0;#res := 1; 313269#factFINAL assume true; 313259#factEXIT >#66#return; 313258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313243#factFINAL assume true; 313235#factEXIT >#66#return; 313234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313222#factFINAL assume true; 313199#factEXIT >#66#return; 313216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313422#factFINAL assume true; 313414#factEXIT >#66#return; 313410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313409#factFINAL assume true; 313396#factEXIT >#66#return; 313406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313432#factFINAL assume true; 313424#factEXIT >#66#return; 313428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313465#factFINAL assume true; 313461#factEXIT >#66#return; 313462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 313156#factFINAL assume true; 313158#factEXIT >#78#return; 312329#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 312327#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 312052#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 312051#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 312049#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 311971#L30-5 [2023-02-17 09:42:10,909 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:10,909 INFO L85 PathProgramCache]: Analyzing trace with hash -523010578, now seen corresponding path program 24 times [2023-02-17 09:42:10,909 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:10,910 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [545286919] [2023-02-17 09:42:10,910 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:10,910 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:10,927 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:10,927 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [734798344] [2023-02-17 09:42:10,927 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:42:10,927 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:10,928 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:10,931 INFO L229 MonitoredProcess]: Starting monitored process 197 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:10,932 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (197)] Waiting until timeout for monitored process [2023-02-17 09:42:11,468 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 19 check-sat command(s) [2023-02-17 09:42:11,468 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:11,472 INFO L263 TraceCheckSpWp]: Trace formula consists of 782 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:42:11,539 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:11,645 INFO L134 CoverageAnalysis]: Checked inductivity of 12233 backedges. 1535 proven. 807 refuted. 0 times theorem prover too weak. 9891 trivial. 0 not checked. [2023-02-17 09:42:11,645 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:11,924 INFO L134 CoverageAnalysis]: Checked inductivity of 12233 backedges. 1535 proven. 827 refuted. 0 times theorem prover too weak. 9871 trivial. 0 not checked. [2023-02-17 09:42:11,924 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:11,925 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [545286919] [2023-02-17 09:42:11,925 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:11,925 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [734798344] [2023-02-17 09:42:11,925 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [734798344] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:11,925 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:11,925 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 26] total 30 [2023-02-17 09:42:11,925 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [700587226] [2023-02-17 09:42:11,925 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:11,926 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:11,926 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:11,926 INFO L85 PathProgramCache]: Analyzing trace with hash -1848812811, now seen corresponding path program 18 times [2023-02-17 09:42:11,926 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:11,926 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2038515773] [2023-02-17 09:42:11,926 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:11,926 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:11,939 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:11,940 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1259572088] [2023-02-17 09:42:11,940 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:42:11,940 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:11,940 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:11,942 INFO L229 MonitoredProcess]: Starting monitored process 198 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:11,942 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (198)] Waiting until timeout for monitored process [2023-02-17 09:42:12,407 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 27 check-sat command(s) [2023-02-17 09:42:12,408 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:12,410 INFO L263 TraceCheckSpWp]: Trace formula consists of 472 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-17 09:42:12,413 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:12,449 INFO L134 CoverageAnalysis]: Checked inductivity of 17509 backedges. 3903 proven. 519 refuted. 0 times theorem prover too weak. 13087 trivial. 0 not checked. [2023-02-17 09:42:12,449 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:12,531 INFO L134 CoverageAnalysis]: Checked inductivity of 17509 backedges. 735 proven. 657 refuted. 0 times theorem prover too weak. 16117 trivial. 0 not checked. [2023-02-17 09:42:12,531 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:12,531 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2038515773] [2023-02-17 09:42:12,531 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:12,531 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1259572088] [2023-02-17 09:42:12,531 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1259572088] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:12,531 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:12,531 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 16 [2023-02-17 09:42:12,531 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [783356072] [2023-02-17 09:42:12,531 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:12,532 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:12,532 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:12,532 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 30 interpolants. [2023-02-17 09:42:12,532 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=107, Invalid=763, Unknown=0, NotChecked=0, Total=870 [2023-02-17 09:42:12,533 INFO L87 Difference]: Start difference. First operand 2079 states and 3900 transitions. cyclomatic complexity: 1844 Second operand has 30 states, 26 states have (on average 3.0) internal successors, (78), 30 states have internal predecessors, (78), 15 states have call successors, (34), 1 states have call predecessors, (34), 9 states have return successors, (38), 15 states have call predecessors, (38), 15 states have call successors, (38) [2023-02-17 09:42:13,602 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:13,602 INFO L93 Difference]: Finished difference Result 2732 states and 5908 transitions. [2023-02-17 09:42:13,602 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2732 states and 5908 transitions. [2023-02-17 09:42:13,619 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 750 [2023-02-17 09:42:13,638 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2732 states to 2722 states and 5859 transitions. [2023-02-17 09:42:13,638 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 391 [2023-02-17 09:42:13,639 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 391 [2023-02-17 09:42:13,639 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2722 states and 5859 transitions. [2023-02-17 09:42:13,639 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:13,639 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2722 states and 5859 transitions. [2023-02-17 09:42:13,640 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2722 states and 5859 transitions. [2023-02-17 09:42:13,684 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2722 to 2433. [2023-02-17 09:42:13,686 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2433 states, 1394 states have (on average 1.0459110473457676) internal successors, (1458), 1377 states have internal predecessors, (1458), 748 states have call successors, (804), 296 states have call predecessors, (804), 291 states have return successors, (3027), 759 states have call predecessors, (3027), 748 states have call successors, (3027) [2023-02-17 09:42:13,698 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2433 states to 2433 states and 5289 transitions. [2023-02-17 09:42:13,698 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2433 states and 5289 transitions. [2023-02-17 09:42:13,699 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 32 states. [2023-02-17 09:42:13,700 INFO L428 stractBuchiCegarLoop]: Abstraction has 2433 states and 5289 transitions. [2023-02-17 09:42:13,700 INFO L335 stractBuchiCegarLoop]: ======== Iteration 48 ============ [2023-02-17 09:42:13,700 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2433 states and 5289 transitions. [2023-02-17 09:42:13,708 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 630 [2023-02-17 09:42:13,708 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:13,708 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:13,711 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [72, 72, 42, 42, 42, 42, 30, 11, 10, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:13,711 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [94, 94, 73, 73, 73, 73, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:13,711 INFO L748 eck$LassoCheckResult]: Stem: 322810#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 322761#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 322762#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 322781#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 322773#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 322774#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 323791#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 323787#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 323788#$Ultimate##0 ~n := #in~n; 323792#L25 assume ~n <= 0;#res := 1; 323790#factFINAL assume true; 323786#factEXIT >#68#return; 323782#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 323783#$Ultimate##0 ~n := #in~n; 323789#L25 assume ~n <= 0;#res := 1; 323785#factFINAL assume true; 323781#factEXIT >#70#return; 323778#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 323779#$Ultimate##0 ~n := #in~n; 323784#L25 assume ~n <= 0;#res := 1; 323780#factFINAL assume true; 323777#factEXIT >#72#return; 323776#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 323775#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 323774#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 323773#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 323772#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322737#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322738#$Ultimate##0 ~n := #in~n; 323760#L25 assume !(~n <= 0); 323753#L26 call #t~ret0 := fact(~n - 1);< 323755#$Ultimate##0 ~n := #in~n; 323759#L25 assume ~n <= 0;#res := 1; 323757#factFINAL assume true; 323751#factEXIT >#66#return; 323754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323756#factFINAL assume true; 323749#factEXIT >#74#return; 323744#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 323745#$Ultimate##0 ~n := #in~n; 323750#L25 assume ~n <= 0;#res := 1; 323747#factFINAL assume true; 323743#factEXIT >#76#return; 323741#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 323742#$Ultimate##0 ~n := #in~n; 323758#L25 assume !(~n <= 0); 323752#L26 call #t~ret0 := fact(~n - 1);< 323755#$Ultimate##0 ~n := #in~n; 323759#L25 assume ~n <= 0;#res := 1; 323757#factFINAL assume true; 323751#factEXIT >#66#return; 323748#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323746#factFINAL assume true; 323740#factEXIT >#78#return; 323738#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 323734#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 323733#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 323732#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 323724#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 323690#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 323692#$Ultimate##0 ~n := #in~n; 323704#L25 assume !(~n <= 0); 323699#L26 call #t~ret0 := fact(~n - 1);< 323701#$Ultimate##0 ~n := #in~n; 323723#L25 assume !(~n <= 0); 323700#L26 call #t~ret0 := fact(~n - 1);< 323712#$Ultimate##0 ~n := #in~n; 323731#L25 assume ~n <= 0;#res := 1; 323729#factFINAL assume true; 323720#factEXIT >#66#return; 323719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323716#factFINAL assume true; 323708#factEXIT >#66#return; 323711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323737#factFINAL assume true; 323730#factEXIT >#74#return; 323727#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 323728#$Ultimate##0 ~n := #in~n; 323739#L25 assume ~n <= 0;#res := 1; 323736#factFINAL assume true; 323726#factEXIT >#76#return; 323714#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 323715#$Ultimate##0 ~n := #in~n; 323718#L25 assume !(~n <= 0); 323709#L26 call #t~ret0 := fact(~n - 1);< 323717#$Ultimate##0 ~n := #in~n; 323735#L25 assume !(~n <= 0); 323721#L26 call #t~ret0 := fact(~n - 1);< 323722#$Ultimate##0 ~n := #in~n; 323731#L25 assume ~n <= 0;#res := 1; 323729#factFINAL assume true; 323720#factEXIT >#66#return; 323719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323716#factFINAL assume true; 323708#factEXIT >#66#return; 323710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323725#factFINAL assume true; 323713#factEXIT >#78#return; 323707#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 323705#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 323702#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 323697#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 323695#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 323691#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 323692#$Ultimate##0 ~n := #in~n; 323704#L25 assume !(~n <= 0); 323699#L26 call #t~ret0 := fact(~n - 1);< 323701#$Ultimate##0 ~n := #in~n; 323723#L25 assume !(~n <= 0); 323700#L26 call #t~ret0 := fact(~n - 1);< 323712#$Ultimate##0 ~n := #in~n; 323723#L25 assume !(~n <= 0); 323700#L26 call #t~ret0 := fact(~n - 1);< 323712#$Ultimate##0 ~n := #in~n; 323731#L25 assume ~n <= 0;#res := 1; 323729#factFINAL assume true; 323720#factEXIT >#66#return; 323719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323716#factFINAL assume true; 323708#factEXIT >#66#return; 323706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323703#factFINAL assume true; 323698#factEXIT >#66#return; 323696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323694#factFINAL assume true; 323689#factEXIT >#74#return; 323686#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 323687#$Ultimate##0 ~n := #in~n; 323693#L25 assume ~n <= 0;#res := 1; 323688#factFINAL assume true; 323685#factEXIT >#76#return; 323467#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 323474#$Ultimate##0 ~n := #in~n; 323470#L25 assume !(~n <= 0); 323450#L26 call #t~ret0 := fact(~n - 1);< 323464#$Ultimate##0 ~n := #in~n; 323481#L25 assume !(~n <= 0); 323452#L26 call #t~ret0 := fact(~n - 1);< 323456#$Ultimate##0 ~n := #in~n; 323482#L25 assume !(~n <= 0); 323448#L26 call #t~ret0 := fact(~n - 1);< 323479#$Ultimate##0 ~n := #in~n; 323483#L25 assume ~n <= 0;#res := 1; 323480#factFINAL assume true; 323478#factEXIT >#66#return; 323476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323475#factFINAL assume true; 323471#factEXIT >#66#return; 323468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323465#factFINAL assume true; 323463#factEXIT >#66#return; 323455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323876#factFINAL assume true; 323684#factEXIT >#78#return; 323680#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 323152#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 323147#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 323146#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 323043#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 323021#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 323022#$Ultimate##0 ~n := #in~n; 323030#L25 assume !(~n <= 0); 323027#L26 call #t~ret0 := fact(~n - 1);< 323028#$Ultimate##0 ~n := #in~n; 323035#L25 assume !(~n <= 0); 323026#L26 call #t~ret0 := fact(~n - 1);< 323033#$Ultimate##0 ~n := #in~n; 323035#L25 assume !(~n <= 0); 323026#L26 call #t~ret0 := fact(~n - 1);< 323033#$Ultimate##0 ~n := #in~n; 323035#L25 assume !(~n <= 0); 323026#L26 call #t~ret0 := fact(~n - 1);< 323033#$Ultimate##0 ~n := #in~n; 323042#L25 assume ~n <= 0;#res := 1; 323041#factFINAL assume true; 323040#factEXIT >#66#return; 323039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323038#factFINAL assume true; 323037#factEXIT >#66#return; 323036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323034#factFINAL assume true; 323032#factEXIT >#66#return; 323031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323029#factFINAL assume true; 323025#factEXIT >#66#return; 323024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323023#factFINAL assume true; 323020#factEXIT >#74#return; 323014#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 323015#$Ultimate##0 ~n := #in~n; 323017#L25 assume ~n <= 0;#res := 1; 323016#factFINAL assume true; 323013#factEXIT >#76#return; 322959#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 322963#$Ultimate##0 ~n := #in~n; 322962#L25 assume !(~n <= 0); 322905#L26 call #t~ret0 := fact(~n - 1);< 322960#$Ultimate##0 ~n := #in~n; 322980#L25 assume !(~n <= 0); 322908#L26 call #t~ret0 := fact(~n - 1);< 322919#$Ultimate##0 ~n := #in~n; 322978#L25 assume !(~n <= 0); 322912#L26 call #t~ret0 := fact(~n - 1);< 322976#$Ultimate##0 ~n := #in~n; 322978#L25 assume !(~n <= 0); 322912#L26 call #t~ret0 := fact(~n - 1);< 322976#$Ultimate##0 ~n := #in~n; 322979#L25 assume ~n <= 0;#res := 1; 322977#factFINAL assume true; 322975#factEXIT >#66#return; 322974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 322971#factFINAL assume true; 322970#factEXIT >#66#return; 322969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 322968#factFINAL assume true; 322966#factEXIT >#66#return; 322964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 322958#factFINAL assume true; 322955#factEXIT >#66#return; 322956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323148#factFINAL assume true; 323149#factEXIT >#78#return; 324810#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324809#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 324806#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324803#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 324777#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 324775#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 324771#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324769#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 324748#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 324766#$Ultimate##0 ~n := #in~n; 324794#L25 assume !(~n <= 0); 324773#L26 call #t~ret0 := fact(~n - 1);< 324774#$Ultimate##0 ~n := #in~n; 324798#L25 assume ~n <= 0;#res := 1; 324793#factFINAL assume true; 324772#factEXIT >#66#return; 324770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324768#factFINAL assume true; 324765#factEXIT >#68#return; 324747#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 322800#$Ultimate##0 ~n := #in~n; 324795#L25 assume ~n <= 0;#res := 1; 324790#factFINAL assume true; 324743#factEXIT >#70#return; 324739#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324741#$Ultimate##0 ~n := #in~n; 324786#L25 assume !(~n <= 0); 324784#L26 call #t~ret0 := fact(~n - 1);< 324785#$Ultimate##0 ~n := #in~n; 324788#L25 assume ~n <= 0;#res := 1; 324787#factFINAL assume true; 324783#factEXIT >#66#return; 324782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324780#factFINAL assume true; 324737#factEXIT >#72#return; 324740#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324959#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 324957#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324956#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324955#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 324392#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 324413#$Ultimate##0 ~n := #in~n; 324414#L25 assume !(~n <= 0); 323335#L26 call #t~ret0 := fact(~n - 1);< 324218#$Ultimate##0 ~n := #in~n; 324014#L25 assume ~n <= 0;#res := 1; 324232#factFINAL assume true; 324213#factEXIT >#66#return; 324217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324460#factFINAL assume true; 324423#factEXIT >#68#return; 324115#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324126#$Ultimate##0 ~n := #in~n; 324124#L25 assume !(~n <= 0); 323360#L26 call #t~ret0 := fact(~n - 1);< 324078#$Ultimate##0 ~n := #in~n; 324014#L25 assume ~n <= 0;#res := 1; 324232#factFINAL assume true; 324213#factEXIT >#66#return; 324217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324460#factFINAL assume true; 324423#factEXIT >#70#return; 324331#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324399#$Ultimate##0 ~n := #in~n; 324458#L25 assume ~n <= 0;#res := 1; 324040#factFINAL assume true; 324321#factEXIT >#72#return; 324344#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324850#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 324849#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324848#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324847#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322865#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322870#$Ultimate##0 ~n := #in~n; 324286#L25 assume !(~n <= 0); 323333#L26 call #t~ret0 := fact(~n - 1);< 324218#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#74#return; 323299#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324125#$Ultimate##0 ~n := #in~n; 324123#L25 assume !(~n <= 0); 323357#L26 call #t~ret0 := fact(~n - 1);< 324078#$Ultimate##0 ~n := #in~n; 324014#L25 assume ~n <= 0;#res := 1; 324232#factFINAL assume true; 324213#factEXIT >#66#return; 324212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324209#factFINAL assume true; 324201#factEXIT >#76#return; 322813#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 322814#$Ultimate##0 ~n := #in~n; 324287#L25 assume !(~n <= 0); 324214#L26 call #t~ret0 := fact(~n - 1);< 324219#$Ultimate##0 ~n := #in~n; 324014#L25 assume ~n <= 0;#res := 1; 324232#factFINAL assume true; 324213#factEXIT >#66#return; 324212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324209#factFINAL assume true; 324201#factEXIT >#78#return; 324206#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324808#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 324805#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324778#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324776#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322832#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322869#$Ultimate##0 ~n := #in~n; 324220#L25 assume !(~n <= 0); 323321#L26 call #t~ret0 := fact(~n - 1);< 324077#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324210#factFINAL assume true; 324207#factEXIT >#74#return; 323282#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324125#$Ultimate##0 ~n := #in~n; 324123#L25 assume !(~n <= 0); 323357#L26 call #t~ret0 := fact(~n - 1);< 324078#$Ultimate##0 ~n := #in~n; 324014#L25 assume ~n <= 0;#res := 1; 324232#factFINAL assume true; 324213#factEXIT >#66#return; 324212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324209#factFINAL assume true; 324201#factEXIT >#76#return; 324022#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324042#$Ultimate##0 ~n := #in~n; 324038#L25 assume !(~n <= 0); 324007#L26 call #t~ret0 := fact(~n - 1);< 324013#$Ultimate##0 ~n := #in~n; 324011#L25 assume !(~n <= 0); 324004#L26 call #t~ret0 := fact(~n - 1);< 324009#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#78#return; 324198#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324675#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 324674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324673#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324670#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322843#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322869#$Ultimate##0 ~n := #in~n; 324220#L25 assume !(~n <= 0); 323321#L26 call #t~ret0 := fact(~n - 1);< 324077#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324285#factFINAL assume true; 324282#factEXIT >#66#return; 323277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323305#factFINAL assume true; 324127#factEXIT >#74#return; 323284#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324125#$Ultimate##0 ~n := #in~n; 324123#L25 assume !(~n <= 0); 323357#L26 call #t~ret0 := fact(~n - 1);< 324078#$Ultimate##0 ~n := #in~n; 324070#L25 assume !(~n <= 0); 323356#L26 call #t~ret0 := fact(~n - 1);< 324048#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#76#return; 324019#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324042#$Ultimate##0 ~n := #in~n; 324038#L25 assume !(~n <= 0); 324007#L26 call #t~ret0 := fact(~n - 1);< 324013#$Ultimate##0 ~n := #in~n; 324011#L25 assume !(~n <= 0); 324004#L26 call #t~ret0 := fact(~n - 1);< 324009#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#78#return; 324195#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324299#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 324298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324296#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324292#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322874#L30-5 [2023-02-17 09:42:13,712 INFO L750 eck$LassoCheckResult]: Loop: 322874#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322736#$Ultimate##0 ~n := #in~n; 323248#L25 assume !(~n <= 0); 323168#L26 call #t~ret0 := fact(~n - 1);< 323203#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323242#L25 assume ~n <= 0;#res := 1; 323246#factFINAL assume true; 323235#factEXIT >#66#return; 323225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323224#factFINAL assume true; 323218#factEXIT >#66#return; 323214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323212#factFINAL assume true; 323206#factEXIT >#66#return; 323205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323202#factFINAL assume true; 323197#factEXIT >#66#return; 323196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323194#factFINAL assume true; 323191#factEXIT >#66#return; 323192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323269#factFINAL assume true; 323267#factEXIT >#66#return; 323268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323271#factFINAL assume true; 323270#factEXIT >#74#return; 322885#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 323151#$Ultimate##0 ~n := #in~n; 323217#L25 assume !(~n <= 0); 323159#L26 call #t~ret0 := fact(~n - 1);< 323213#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323242#L25 assume ~n <= 0;#res := 1; 323246#factFINAL assume true; 323235#factEXIT >#66#return; 323225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323224#factFINAL assume true; 323218#factEXIT >#66#return; 323214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323212#factFINAL assume true; 323206#factEXIT >#66#return; 323205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323202#factFINAL assume true; 323197#factEXIT >#66#return; 323200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323259#factFINAL assume true; 323254#factEXIT >#76#return; 322884#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 323151#$Ultimate##0 ~n := #in~n; 323217#L25 assume !(~n <= 0); 323159#L26 call #t~ret0 := fact(~n - 1);< 323213#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323241#L25 assume !(~n <= 0); 323165#L26 call #t~ret0 := fact(~n - 1);< 323238#$Ultimate##0 ~n := #in~n; 323242#L25 assume ~n <= 0;#res := 1; 323246#factFINAL assume true; 323235#factEXIT >#66#return; 323225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323224#factFINAL assume true; 323218#factEXIT >#66#return; 323214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323212#factFINAL assume true; 323206#factEXIT >#66#return; 323205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323202#factFINAL assume true; 323197#factEXIT >#66#return; 323200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323259#factFINAL assume true; 323254#factEXIT >#78#return; 322763#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 322764#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 322809#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 322793#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 322779#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 322780#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 322817#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 322818#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322750#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322751#$Ultimate##0 ~n := #in~n; 324988#L25 assume !(~n <= 0); 324984#L26 call #t~ret0 := fact(~n - 1);< 324987#$Ultimate##0 ~n := #in~n; 324801#L25 assume !(~n <= 0); 324983#L26 call #t~ret0 := fact(~n - 1);< 324991#$Ultimate##0 ~n := #in~n; 324992#L25 assume ~n <= 0;#res := 1; 325000#factFINAL assume true; 324998#factEXIT >#66#return; 324993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324994#factFINAL assume true; 324995#factEXIT >#66#return; 324997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 325030#factFINAL assume true; 325021#factEXIT >#68#return; 324751#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 322800#$Ultimate##0 ~n := #in~n; 324795#L25 assume ~n <= 0;#res := 1; 324790#factFINAL assume true; 324743#factEXIT >#70#return; 322757#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 325014#$Ultimate##0 ~n := #in~n; 325012#L25 assume !(~n <= 0); 325007#L26 call #t~ret0 := fact(~n - 1);< 325008#$Ultimate##0 ~n := #in~n; 324789#L25 assume !(~n <= 0); 322740#L26 call #t~ret0 := fact(~n - 1);< 325005#$Ultimate##0 ~n := #in~n; 324789#L25 assume !(~n <= 0); 322740#L26 call #t~ret0 := fact(~n - 1);< 325005#$Ultimate##0 ~n := #in~n; 324789#L25 assume !(~n <= 0); 322740#L26 call #t~ret0 := fact(~n - 1);< 325005#$Ultimate##0 ~n := #in~n; 324789#L25 assume !(~n <= 0); 322740#L26 call #t~ret0 := fact(~n - 1);< 325005#$Ultimate##0 ~n := #in~n; 324789#L25 assume !(~n <= 0); 322740#L26 call #t~ret0 := fact(~n - 1);< 325005#$Ultimate##0 ~n := #in~n; 322795#L25 assume ~n <= 0;#res := 1; 322754#factFINAL assume true; 322739#factEXIT >#66#return; 322741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 325165#factFINAL assume true; 325163#factEXIT >#66#return; 325162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 325161#factFINAL assume true; 325160#factEXIT >#66#return; 325159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 325158#factFINAL assume true; 325150#factEXIT >#66#return; 325148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 325146#factFINAL assume true; 325144#factEXIT >#66#return; 325145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 325157#factFINAL assume true; 325156#factEXIT >#66#return; 325154#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 325152#factFINAL assume true; 325136#factEXIT >#72#return; 322775#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 322776#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 324976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324965#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324457#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 324350#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 324401#$Ultimate##0 ~n := #in~n; 324407#L25 assume !(~n <= 0); 323319#L26 call #t~ret0 := fact(~n - 1);< 324077#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324285#factFINAL assume true; 324282#factEXIT >#66#return; 324281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324280#factFINAL assume true; 324276#factEXIT >#66#return; 324275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324274#factFINAL assume true; 324264#factEXIT >#66#return; 324265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324440#factFINAL assume true; 324437#factEXIT >#68#return; 324388#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324413#$Ultimate##0 ~n := #in~n; 324414#L25 assume !(~n <= 0); 323335#L26 call #t~ret0 := fact(~n - 1);< 324218#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324285#factFINAL assume true; 324282#factEXIT >#66#return; 324281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324280#factFINAL assume true; 324276#factEXIT >#66#return; 324275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324274#factFINAL assume true; 324264#factEXIT >#66#return; 324263#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324262#factFINAL assume true; 324257#factEXIT >#66#return; 323349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324291#factFINAL assume true; 323318#factEXIT >#66#return; 323345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324443#factFINAL assume true; 324436#factEXIT >#70#return; 324241#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324346#$Ultimate##0 ~n := #in~n; 324606#L25 assume !(~n <= 0); 323341#L26 call #t~ret0 := fact(~n - 1);< 324218#$Ultimate##0 ~n := #in~n; 324014#L25 assume ~n <= 0;#res := 1; 324232#factFINAL assume true; 324213#factEXIT >#66#return; 324216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324468#factFINAL assume true; 324448#factEXIT >#72#return; 324334#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324456#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 324455#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324454#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324453#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 324376#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 324401#$Ultimate##0 ~n := #in~n; 324407#L25 assume !(~n <= 0); 323319#L26 call #t~ret0 := fact(~n - 1);< 324077#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324285#factFINAL assume true; 324282#factEXIT >#66#return; 324281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324280#factFINAL assume true; 324276#factEXIT >#66#return; 324275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324274#factFINAL assume true; 324264#factEXIT >#66#return; 324265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324440#factFINAL assume true; 324437#factEXIT >#68#return; 324357#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324413#$Ultimate##0 ~n := #in~n; 324414#L25 assume !(~n <= 0); 323335#L26 call #t~ret0 := fact(~n - 1);< 324218#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324285#factFINAL assume true; 324282#factEXIT >#66#return; 324281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324280#factFINAL assume true; 324276#factEXIT >#66#return; 324275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324274#factFINAL assume true; 324264#factEXIT >#66#return; 324263#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324262#factFINAL assume true; 324257#factEXIT >#66#return; 323349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324291#factFINAL assume true; 323318#factEXIT >#66#return; 323345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324443#factFINAL assume true; 324436#factEXIT >#70#return; 324238#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324346#$Ultimate##0 ~n := #in~n; 324606#L25 assume ~n <= 0;#res := 1; 324040#factFINAL assume true; 324321#factEXIT >#72#return; 324340#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324452#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 324451#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324450#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324449#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322830#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322869#$Ultimate##0 ~n := #in~n; 324220#L25 assume !(~n <= 0); 323321#L26 call #t~ret0 := fact(~n - 1);< 324077#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324210#factFINAL assume true; 324207#factEXIT >#74#return; 323292#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324125#$Ultimate##0 ~n := #in~n; 324123#L25 assume !(~n <= 0); 323357#L26 call #t~ret0 := fact(~n - 1);< 324078#$Ultimate##0 ~n := #in~n; 324070#L25 assume !(~n <= 0); 323356#L26 call #t~ret0 := fact(~n - 1);< 324048#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#76#return; 324021#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324042#$Ultimate##0 ~n := #in~n; 324038#L25 assume !(~n <= 0); 324007#L26 call #t~ret0 := fact(~n - 1);< 324013#$Ultimate##0 ~n := #in~n; 324014#L25 assume ~n <= 0;#res := 1; 324232#factFINAL assume true; 324213#factEXIT >#66#return; 324212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324209#factFINAL assume true; 324201#factEXIT >#78#return; 324202#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324310#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 324308#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324306#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324304#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322866#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322869#$Ultimate##0 ~n := #in~n; 324220#L25 assume !(~n <= 0); 323321#L26 call #t~ret0 := fact(~n - 1);< 324077#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324285#factFINAL assume true; 324282#factEXIT >#66#return; 323277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323305#factFINAL assume true; 324127#factEXIT >#74#return; 323287#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324125#$Ultimate##0 ~n := #in~n; 324123#L25 assume !(~n <= 0); 323357#L26 call #t~ret0 := fact(~n - 1);< 324078#$Ultimate##0 ~n := #in~n; 324070#L25 assume !(~n <= 0); 323356#L26 call #t~ret0 := fact(~n - 1);< 324048#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#76#return; 324025#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324042#$Ultimate##0 ~n := #in~n; 324038#L25 assume !(~n <= 0); 324007#L26 call #t~ret0 := fact(~n - 1);< 324013#$Ultimate##0 ~n := #in~n; 324011#L25 assume !(~n <= 0); 324004#L26 call #t~ret0 := fact(~n - 1);< 324009#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#78#return; 324199#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324297#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 324295#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324294#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324293#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322854#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 322869#$Ultimate##0 ~n := #in~n; 324220#L25 assume !(~n <= 0); 323321#L26 call #t~ret0 := fact(~n - 1);< 324077#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324069#L25 assume !(~n <= 0); 323332#L26 call #t~ret0 := fact(~n - 1);< 324006#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323353#factFINAL assume true; 323363#factEXIT >#66#return; 324228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324285#factFINAL assume true; 324282#factEXIT >#66#return; 323277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 323305#factFINAL assume true; 324127#factEXIT >#74#return; 323284#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 324125#$Ultimate##0 ~n := #in~n; 324123#L25 assume !(~n <= 0); 323357#L26 call #t~ret0 := fact(~n - 1);< 324078#$Ultimate##0 ~n := #in~n; 324070#L25 assume !(~n <= 0); 323356#L26 call #t~ret0 := fact(~n - 1);< 324048#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#76#return; 324019#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 324042#$Ultimate##0 ~n := #in~n; 324038#L25 assume !(~n <= 0); 324007#L26 call #t~ret0 := fact(~n - 1);< 324013#$Ultimate##0 ~n := #in~n; 324011#L25 assume !(~n <= 0); 324004#L26 call #t~ret0 := fact(~n - 1);< 324009#$Ultimate##0 ~n := #in~n; 324012#L25 assume ~n <= 0;#res := 1; 324010#factFINAL assume true; 324002#factEXIT >#66#return; 324005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324273#factFINAL assume true; 324269#factEXIT >#66#return; 324211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 324208#factFINAL assume true; 324194#factEXIT >#78#return; 324195#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 324299#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 324298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 324296#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 324292#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 322874#L30-5 [2023-02-17 09:42:13,712 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:13,712 INFO L85 PathProgramCache]: Analyzing trace with hash 387386350, now seen corresponding path program 25 times [2023-02-17 09:42:13,712 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:13,712 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [66747552] [2023-02-17 09:42:13,712 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:13,712 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:13,725 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:13,725 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [415760541] [2023-02-17 09:42:13,725 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:13,726 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:13,726 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:13,732 INFO L229 MonitoredProcess]: Starting monitored process 199 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:13,733 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (199)] Waiting until timeout for monitored process [2023-02-17 09:42:14,222 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:14,226 INFO L263 TraceCheckSpWp]: Trace formula consists of 1045 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-17 09:42:14,229 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:14,263 INFO L134 CoverageAnalysis]: Checked inductivity of 12233 backedges. 1591 proven. 141 refuted. 0 times theorem prover too weak. 10501 trivial. 0 not checked. [2023-02-17 09:42:14,263 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:14,302 INFO L134 CoverageAnalysis]: Checked inductivity of 12233 backedges. 603 proven. 168 refuted. 0 times theorem prover too weak. 11462 trivial. 0 not checked. [2023-02-17 09:42:14,302 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:14,303 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [66747552] [2023-02-17 09:42:14,303 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:14,303 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [415760541] [2023-02-17 09:42:14,303 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [415760541] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:14,303 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:14,303 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 10 [2023-02-17 09:42:14,303 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [501550432] [2023-02-17 09:42:14,303 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:14,303 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:14,304 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:14,304 INFO L85 PathProgramCache]: Analyzing trace with hash -334640595, now seen corresponding path program 19 times [2023-02-17 09:42:14,304 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:14,304 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2000866146] [2023-02-17 09:42:14,304 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:14,304 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:14,319 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:14,319 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1815524587] [2023-02-17 09:42:14,319 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:14,319 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:14,319 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:14,321 INFO L229 MonitoredProcess]: Starting monitored process 200 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:14,323 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (200)] Waiting until timeout for monitored process [2023-02-17 09:42:14,830 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:14,834 INFO L263 TraceCheckSpWp]: Trace formula consists of 1241 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:42:14,838 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:14,908 INFO L134 CoverageAnalysis]: Checked inductivity of 22855 backedges. 6965 proven. 436 refuted. 0 times theorem prover too weak. 15454 trivial. 0 not checked. [2023-02-17 09:42:14,908 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:15,205 INFO L134 CoverageAnalysis]: Checked inductivity of 22855 backedges. 77 proven. 5266 refuted. 0 times theorem prover too weak. 17512 trivial. 0 not checked. [2023-02-17 09:42:15,205 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:15,205 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2000866146] [2023-02-17 09:42:15,205 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:15,205 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1815524587] [2023-02-17 09:42:15,206 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1815524587] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:15,206 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:15,206 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 26] total 29 [2023-02-17 09:42:15,206 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [307821083] [2023-02-17 09:42:15,206 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:15,206 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:15,207 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:15,207 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2023-02-17 09:42:15,207 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2023-02-17 09:42:15,207 INFO L87 Difference]: Start difference. First operand 2433 states and 5289 transitions. cyclomatic complexity: 2880 Second operand has 10 states, 9 states have (on average 5.666666666666667) internal successors, (51), 10 states have internal predecessors, (51), 8 states have call successors, (21), 2 states have call predecessors, (21), 4 states have return successors, (21), 7 states have call predecessors, (21), 8 states have call successors, (21) [2023-02-17 09:42:15,357 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:15,358 INFO L93 Difference]: Finished difference Result 2475 states and 5367 transitions. [2023-02-17 09:42:15,358 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2475 states and 5367 transitions. [2023-02-17 09:42:15,452 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 630 [2023-02-17 09:42:15,466 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2475 states to 2430 states and 5308 transitions. [2023-02-17 09:42:15,466 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 365 [2023-02-17 09:42:15,466 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 365 [2023-02-17 09:42:15,466 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2430 states and 5308 transitions. [2023-02-17 09:42:15,466 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:15,467 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2430 states and 5308 transitions. [2023-02-17 09:42:15,467 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2430 states and 5308 transitions. [2023-02-17 09:42:15,513 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2430 to 2407. [2023-02-17 09:42:15,515 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2407 states, 1369 states have (on average 1.047479912344777) internal successors, (1434), 1353 states have internal predecessors, (1434), 748 states have call successors, (804), 296 states have call predecessors, (804), 290 states have return successors, (3031), 757 states have call predecessors, (3031), 748 states have call successors, (3031) [2023-02-17 09:42:15,526 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2407 states to 2407 states and 5269 transitions. [2023-02-17 09:42:15,526 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2407 states and 5269 transitions. [2023-02-17 09:42:15,527 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-17 09:42:15,527 INFO L428 stractBuchiCegarLoop]: Abstraction has 2407 states and 5269 transitions. [2023-02-17 09:42:15,527 INFO L335 stractBuchiCegarLoop]: ======== Iteration 49 ============ [2023-02-17 09:42:15,527 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2407 states and 5269 transitions. [2023-02-17 09:42:15,535 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 630 [2023-02-17 09:42:15,535 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:15,536 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:15,538 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [78, 78, 47, 47, 47, 47, 31, 11, 10, 8, 8, 8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:15,538 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [74, 74, 53, 53, 53, 53, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:15,539 INFO L748 eck$LassoCheckResult]: Stem: 334027#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 333975#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 333976#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 333995#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 334028#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 334530#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334529#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334525#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334526#$Ultimate##0 ~n := #in~n; 334531#L25 assume ~n <= 0;#res := 1; 334528#factFINAL assume true; 334524#factEXIT >#68#return; 334520#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334521#$Ultimate##0 ~n := #in~n; 334527#L25 assume ~n <= 0;#res := 1; 334523#factFINAL assume true; 334519#factEXIT >#70#return; 334516#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334517#$Ultimate##0 ~n := #in~n; 334522#L25 assume ~n <= 0;#res := 1; 334518#factFINAL assume true; 334515#factEXIT >#72#return; 334514#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334512#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 334511#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334510#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334506#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334497#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334498#$Ultimate##0 ~n := #in~n; 334508#L25 assume !(~n <= 0); 334500#L26 call #t~ret0 := fact(~n - 1);< 334503#$Ultimate##0 ~n := #in~n; 334513#L25 assume ~n <= 0;#res := 1; 334507#factFINAL assume true; 334499#factEXIT >#66#return; 334502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334505#factFINAL assume true; 334496#factEXIT >#74#return; 334492#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334493#$Ultimate##0 ~n := #in~n; 334504#L25 assume ~n <= 0;#res := 1; 334495#factFINAL assume true; 334491#factEXIT >#76#return; 334488#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334489#$Ultimate##0 ~n := #in~n; 334509#L25 assume !(~n <= 0); 334501#L26 call #t~ret0 := fact(~n - 1);< 334503#$Ultimate##0 ~n := #in~n; 334513#L25 assume ~n <= 0;#res := 1; 334507#factFINAL assume true; 334499#factEXIT >#66#return; 334494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334490#factFINAL assume true; 334487#factEXIT >#78#return; 334486#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334485#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 334484#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334472#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334468#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334428#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334430#$Ultimate##0 ~n := #in~n; 334452#L25 assume !(~n <= 0); 334445#L26 call #t~ret0 := fact(~n - 1);< 334447#$Ultimate##0 ~n := #in~n; 334463#L25 assume !(~n <= 0); 334446#L26 call #t~ret0 := fact(~n - 1);< 334457#$Ultimate##0 ~n := #in~n; 334479#L25 assume ~n <= 0;#res := 1; 334477#factFINAL assume true; 334469#factEXIT >#66#return; 334465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334459#factFINAL assume true; 334453#factEXIT >#66#return; 334456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334480#factFINAL assume true; 334478#factEXIT >#74#return; 334475#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334476#$Ultimate##0 ~n := #in~n; 334483#L25 assume ~n <= 0;#res := 1; 334481#factFINAL assume true; 334474#factEXIT >#76#return; 334460#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334466#$Ultimate##0 ~n := #in~n; 334462#L25 assume !(~n <= 0); 334454#L26 call #t~ret0 := fact(~n - 1);< 334461#$Ultimate##0 ~n := #in~n; 334482#L25 assume !(~n <= 0); 334470#L26 call #t~ret0 := fact(~n - 1);< 334471#$Ultimate##0 ~n := #in~n; 334479#L25 assume ~n <= 0;#res := 1; 334477#factFINAL assume true; 334469#factEXIT >#66#return; 334465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334459#factFINAL assume true; 334453#factEXIT >#66#return; 334455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334473#factFINAL assume true; 334467#factEXIT >#78#return; 334464#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334458#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 334451#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334449#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334442#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334429#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334430#$Ultimate##0 ~n := #in~n; 334452#L25 assume !(~n <= 0); 334445#L26 call #t~ret0 := fact(~n - 1);< 334447#$Ultimate##0 ~n := #in~n; 334463#L25 assume !(~n <= 0); 334446#L26 call #t~ret0 := fact(~n - 1);< 334457#$Ultimate##0 ~n := #in~n; 334463#L25 assume !(~n <= 0); 334446#L26 call #t~ret0 := fact(~n - 1);< 334457#$Ultimate##0 ~n := #in~n; 334479#L25 assume ~n <= 0;#res := 1; 334477#factFINAL assume true; 334469#factEXIT >#66#return; 334465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334459#factFINAL assume true; 334453#factEXIT >#66#return; 334450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334448#factFINAL assume true; 334444#factEXIT >#66#return; 334441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334440#factFINAL assume true; 334427#factEXIT >#74#return; 334423#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334424#$Ultimate##0 ~n := #in~n; 334439#L25 assume ~n <= 0;#res := 1; 334426#factFINAL assume true; 334422#factEXIT >#76#return; 334419#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334400#$Ultimate##0 ~n := #in~n; 334443#L25 assume !(~n <= 0); 334435#L26 call #t~ret0 := fact(~n - 1);< 334438#$Ultimate##0 ~n := #in~n; 334618#L25 assume !(~n <= 0); 334433#L26 call #t~ret0 := fact(~n - 1);< 334572#$Ultimate##0 ~n := #in~n; 334619#L25 assume !(~n <= 0); 334434#L26 call #t~ret0 := fact(~n - 1);< 334614#$Ultimate##0 ~n := #in~n; 334617#L25 assume ~n <= 0;#res := 1; 334616#factFINAL assume true; 334613#factEXIT >#66#return; 334610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334609#factFINAL assume true; 334607#factEXIT >#66#return; 334606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334604#factFINAL assume true; 334431#factEXIT >#66#return; 334425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334421#factFINAL assume true; 334418#factEXIT >#78#return; 334394#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334395#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 334390#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334391#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334223#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334221#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334222#$Ultimate##0 ~n := #in~n; 334250#L25 assume !(~n <= 0); 334247#L26 call #t~ret0 := fact(~n - 1);< 334249#$Ultimate##0 ~n := #in~n; 334256#L25 assume !(~n <= 0); 334248#L26 call #t~ret0 := fact(~n - 1);< 334254#$Ultimate##0 ~n := #in~n; 334256#L25 assume !(~n <= 0); 334248#L26 call #t~ret0 := fact(~n - 1);< 334254#$Ultimate##0 ~n := #in~n; 334256#L25 assume !(~n <= 0); 334248#L26 call #t~ret0 := fact(~n - 1);< 334254#$Ultimate##0 ~n := #in~n; 334290#L25 assume ~n <= 0;#res := 1; 334288#factFINAL assume true; 334282#factEXIT >#66#return; 334276#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334273#factFINAL assume true; 334261#factEXIT >#66#return; 334260#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334259#factFINAL assume true; 334253#factEXIT >#66#return; 334252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334251#factFINAL assume true; 334246#factEXIT >#66#return; 334245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334242#factFINAL assume true; 334220#factEXIT >#74#return; 334217#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334218#$Ultimate##0 ~n := #in~n; 334258#L25 assume ~n <= 0;#res := 1; 334257#factFINAL assume true; 334216#factEXIT >#76#return; 334197#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334214#$Ultimate##0 ~n := #in~n; 334213#L25 assume !(~n <= 0); 334154#L26 call #t~ret0 := fact(~n - 1);< 334198#$Ultimate##0 ~n := #in~n; 334262#L25 assume !(~n <= 0); 334159#L26 call #t~ret0 := fact(~n - 1);< 334169#$Ultimate##0 ~n := #in~n; 334255#L25 assume !(~n <= 0); 334155#L26 call #t~ret0 := fact(~n - 1);< 334244#$Ultimate##0 ~n := #in~n; 334255#L25 assume !(~n <= 0); 334155#L26 call #t~ret0 := fact(~n - 1);< 334244#$Ultimate##0 ~n := #in~n; 334255#L25 assume !(~n <= 0); 334155#L26 call #t~ret0 := fact(~n - 1);< 334244#$Ultimate##0 ~n := #in~n; 334269#L25 assume ~n <= 0;#res := 1; 334266#factFINAL assume true; 334243#factEXIT >#66#return; 334241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334240#factFINAL assume true; 334231#factEXIT >#66#return; 334229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334228#factFINAL assume true; 334208#factEXIT >#66#return; 334207#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334206#factFINAL assume true; 334201#factEXIT >#66#return; 334200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334196#factFINAL assume true; 334193#factEXIT >#66#return; 334166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 334406#factFINAL assume true; 334404#factEXIT >#78#return; 334135#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335494#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 335490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335482#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 335480#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 335477#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 335473#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335471#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335445#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334016#$Ultimate##0 ~n := #in~n; 335479#L25 assume !(~n <= 0); 335475#L26 call #t~ret0 := fact(~n - 1);< 335476#$Ultimate##0 ~n := #in~n; 335481#L25 assume ~n <= 0;#res := 1; 335478#factFINAL assume true; 335474#factEXIT >#66#return; 335472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335470#factFINAL assume true; 335467#factEXIT >#68#return; 335451#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335464#$Ultimate##0 ~n := #in~n; 335469#L25 assume ~n <= 0;#res := 1; 335466#factFINAL assume true; 335442#factEXIT >#70#return; 335438#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335439#$Ultimate##0 ~n := #in~n; 335489#L25 assume !(~n <= 0); 333957#L26 call #t~ret0 := fact(~n - 1);< 335488#$Ultimate##0 ~n := #in~n; 335495#L25 assume ~n <= 0;#res := 1; 335491#factFINAL assume true; 335487#factEXIT >#66#return; 335486#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335485#factFINAL assume true; 335437#factEXIT >#72#return; 335431#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335423#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335422#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335420#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335418#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335313#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 335416#$Ultimate##0 ~n := #in~n; 335683#L25 assume !(~n <= 0); 335202#L26 call #t~ret0 := fact(~n - 1);< 335216#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335415#factFINAL assume true; 335310#factEXIT >#68#return; 335327#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335412#$Ultimate##0 ~n := #in~n; 335505#L25 assume !(~n <= 0); 335210#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335415#factFINAL assume true; 335310#factEXIT >#70#return; 335290#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335305#$Ultimate##0 ~n := #in~n; 335414#L25 assume ~n <= 0;#res := 1; 335309#factFINAL assume true; 335234#factEXIT >#72#return; 335231#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335226#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 335224#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335217#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335192#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334084#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 334024#$Ultimate##0 ~n := #in~n; 336169#L25 assume !(~n <= 0); 335205#L26 call #t~ret0 := fact(~n - 1);< 335216#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335191#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335190#factFINAL assume true; 334047#factEXIT >#74#return; 334092#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335187#$Ultimate##0 ~n := #in~n; 335506#L25 assume !(~n <= 0); 335204#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335574#factFINAL assume true; 335565#factEXIT >#76#return; 335566#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335646#$Ultimate##0 ~n := #in~n; 335648#L25 assume !(~n <= 0); 335427#L26 call #t~ret0 := fact(~n - 1);< 335436#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335574#factFINAL assume true; 335565#factEXIT >#78#return; 335569#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335644#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 335639#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335637#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335636#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335111#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333943#$Ultimate##0 ~n := #in~n; 335607#L25 assume !(~n <= 0); 335207#L26 call #t~ret0 := fact(~n - 1);< 335223#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335698#factFINAL assume true; 335507#factEXIT >#74#return; 334100#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335187#$Ultimate##0 ~n := #in~n; 335506#L25 assume !(~n <= 0); 335204#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335574#factFINAL assume true; 335565#factEXIT >#76#return; 334099#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335421#$Ultimate##0 ~n := #in~n; 335419#L25 assume !(~n <= 0); 335195#L26 call #t~ret0 := fact(~n - 1);< 335307#$Ultimate##0 ~n := #in~n; 335233#L25 assume !(~n <= 0); 335228#L26 call #t~ret0 := fact(~n - 1);< 335230#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335191#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335190#factFINAL assume true; 334047#factEXIT >#78#return; 333979#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333980#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 333998#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 336159#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 336120#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335112#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333943#$Ultimate##0 ~n := #in~n; 335607#L25 assume !(~n <= 0); 335207#L26 call #t~ret0 := fact(~n - 1);< 335223#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335554#factFINAL assume true; 335548#factEXIT >#66#return; 335550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335606#factFINAL assume true; 335563#factEXIT >#74#return; 334101#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335187#$Ultimate##0 ~n := #in~n; 335506#L25 assume !(~n <= 0); 335204#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335574#factFINAL assume true; 335565#factEXIT >#76#return; 335509#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335513#$Ultimate##0 ~n := #in~n; 335685#L25 assume !(~n <= 0); 335440#L26 call #t~ret0 := fact(~n - 1);< 335468#$Ultimate##0 ~n := #in~n; 335465#L25 assume !(~n <= 0); 335197#L26 call #t~ret0 := fact(~n - 1);< 335432#$Ultimate##0 ~n := #in~n; 335424#L25 assume !(~n <= 0); 335203#L26 call #t~ret0 := fact(~n - 1);< 335413#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335698#factFINAL assume true; 335507#factEXIT >#78#return; 335093#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335091#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 335088#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335084#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335081#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 333940#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333941#$Ultimate##0 ~n := #in~n; 335186#L25 assume !(~n <= 0); 335059#L26 call #t~ret0 := fact(~n - 1);< 335116#$Ultimate##0 ~n := #in~n; 335147#L25 assume !(~n <= 0); 335055#L26 call #t~ret0 := fact(~n - 1);< 335144#$Ultimate##0 ~n := #in~n; 335147#L25 assume !(~n <= 0); 335055#L26 call #t~ret0 := fact(~n - 1);< 335144#$Ultimate##0 ~n := #in~n; 335147#L25 assume !(~n <= 0); 335055#L26 call #t~ret0 := fact(~n - 1);< 335144#$Ultimate##0 ~n := #in~n; 335150#L25 assume ~n <= 0;#res := 1; 335166#factFINAL assume true; 335142#factEXIT >#66#return; 335139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335138#factFINAL assume true; 335131#factEXIT >#66#return; 335129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335125#factFINAL assume true; 335118#factEXIT >#66#return; 335117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335114#factFINAL assume true; 335094#factEXIT >#66#return; 335097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335164#factFINAL assume true; 335162#factEXIT >#74#return; 335074#L30-6 [2023-02-17 09:42:15,539 INFO L750 eck$LassoCheckResult]: Loop: 335074#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335076#$Ultimate##0 ~n := #in~n; 335075#L25 assume !(~n <= 0); 335068#L26 call #t~ret0 := fact(~n - 1);< 335071#$Ultimate##0 ~n := #in~n; 335072#L25 assume ~n <= 0;#res := 1; 335185#factFINAL assume true; 335184#factEXIT >#66#return; 335183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335182#factFINAL assume true; 335181#factEXIT >#76#return; 335149#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335152#$Ultimate##0 ~n := #in~n; 335151#L25 assume !(~n <= 0); 335096#L26 call #t~ret0 := fact(~n - 1);< 335146#$Ultimate##0 ~n := #in~n; 335140#L25 assume !(~n <= 0); 335119#L26 call #t~ret0 := fact(~n - 1);< 335123#$Ultimate##0 ~n := #in~n; 335141#L25 assume !(~n <= 0); 335132#L26 call #t~ret0 := fact(~n - 1);< 335134#$Ultimate##0 ~n := #in~n; 335148#L25 assume !(~n <= 0); 335143#L26 call #t~ret0 := fact(~n - 1);< 335145#$Ultimate##0 ~n := #in~n; 335150#L25 assume ~n <= 0;#res := 1; 335166#factFINAL assume true; 335142#factEXIT >#66#return; 335139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335138#factFINAL assume true; 335131#factEXIT >#66#return; 335129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335125#factFINAL assume true; 335118#factEXIT >#66#return; 335117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335114#factFINAL assume true; 335094#factEXIT >#66#return; 335097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335164#factFINAL assume true; 335162#factEXIT >#78#return; 334132#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 333996#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 333997#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334111#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 334112#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 333987#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 333988#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 333999#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334000#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333972#$Ultimate##0 ~n := #in~n; 336182#L25 assume !(~n <= 0); 336179#L26 call #t~ret0 := fact(~n - 1);< 336181#$Ultimate##0 ~n := #in~n; 335483#L25 assume !(~n <= 0); 336178#L26 call #t~ret0 := fact(~n - 1);< 336187#$Ultimate##0 ~n := #in~n; 336188#L25 assume ~n <= 0;#res := 1; 336202#factFINAL assume true; 336201#factEXIT >#66#return; 336200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 336198#factFINAL assume true; 336183#factEXIT >#66#return; 336184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 336241#factFINAL assume true; 336240#factEXIT >#68#return; 335446#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335464#$Ultimate##0 ~n := #in~n; 335469#L25 assume ~n <= 0;#res := 1; 335466#factFINAL assume true; 335442#factEXIT >#70#return; 334034#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 336236#$Ultimate##0 ~n := #in~n; 336267#L25 assume !(~n <= 0); 333956#L26 call #t~ret0 := fact(~n - 1);< 336221#$Ultimate##0 ~n := #in~n; 335497#L25 assume !(~n <= 0); 333945#L26 call #t~ret0 := fact(~n - 1);< 336218#$Ultimate##0 ~n := #in~n; 335497#L25 assume !(~n <= 0); 333945#L26 call #t~ret0 := fact(~n - 1);< 336218#$Ultimate##0 ~n := #in~n; 334012#L25 assume ~n <= 0;#res := 1; 334013#factFINAL assume true; 333944#factEXIT >#66#return; 333946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 336255#factFINAL assume true; 336253#factEXIT >#66#return; 334003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 333955#factFINAL assume true; 333961#factEXIT >#66#return; 336286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 336283#factFINAL assume true; 336245#factEXIT >#72#return; 334035#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 336099#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 336097#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 336096#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 336095#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335602#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 335631#$Ultimate##0 ~n := #in~n; 335635#L25 assume !(~n <= 0); 335196#L26 call #t~ret0 := fact(~n - 1);< 335223#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335647#factFINAL assume true; 335629#factEXIT >#68#return; 335365#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335412#$Ultimate##0 ~n := #in~n; 335505#L25 assume !(~n <= 0); 335210#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335496#L25 assume !(~n <= 0); 335199#L26 call #t~ret0 := fact(~n - 1);< 335493#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335647#factFINAL assume true; 335629#factEXIT >#70#return; 335263#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335591#$Ultimate##0 ~n := #in~n; 335694#L25 assume ~n <= 0;#res := 1; 335309#factFINAL assume true; 335234#factEXIT >#72#return; 335300#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 336090#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 336085#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 336084#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 336081#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335598#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 335631#$Ultimate##0 ~n := #in~n; 335635#L25 assume !(~n <= 0); 335196#L26 call #t~ret0 := fact(~n - 1);< 335223#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335634#factFINAL assume true; 335630#factEXIT >#68#return; 335334#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335412#$Ultimate##0 ~n := #in~n; 335505#L25 assume !(~n <= 0); 335210#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335496#L25 assume !(~n <= 0); 335199#L26 call #t~ret0 := fact(~n - 1);< 335493#$Ultimate##0 ~n := #in~n; 335484#L25 assume !(~n <= 0); 335194#L26 call #t~ret0 := fact(~n - 1);< 335433#$Ultimate##0 ~n := #in~n; 335424#L25 assume !(~n <= 0); 335203#L26 call #t~ret0 := fact(~n - 1);< 335413#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335554#factFINAL assume true; 335548#factEXIT >#66#return; 335549#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335633#factFINAL assume true; 335632#factEXIT >#70#return; 335242#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335305#$Ultimate##0 ~n := #in~n; 335414#L25 assume ~n <= 0;#res := 1; 335309#factFINAL assume true; 335234#factEXIT >#72#return; 335297#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 336100#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 336094#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 336093#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 336092#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335102#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333943#$Ultimate##0 ~n := #in~n; 335607#L25 assume !(~n <= 0); 335207#L26 call #t~ret0 := fact(~n - 1);< 335223#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335698#factFINAL assume true; 335507#factEXIT >#74#return; 334082#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335187#$Ultimate##0 ~n := #in~n; 335506#L25 assume !(~n <= 0); 335204#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335574#factFINAL assume true; 335565#factEXIT >#76#return; 334093#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335421#$Ultimate##0 ~n := #in~n; 335419#L25 assume !(~n <= 0); 335195#L26 call #t~ret0 := fact(~n - 1);< 335307#$Ultimate##0 ~n := #in~n; 335308#L25 assume ~n <= 0;#res := 1; 335435#factFINAL assume true; 335426#factEXIT >#66#return; 335429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335574#factFINAL assume true; 335565#factEXIT >#78#return; 335571#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 336154#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 336153#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 336152#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334001#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334002#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333943#$Ultimate##0 ~n := #in~n; 335607#L25 assume !(~n <= 0); 335207#L26 call #t~ret0 := fact(~n - 1);< 335223#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335554#factFINAL assume true; 335548#factEXIT >#66#return; 335550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335606#factFINAL assume true; 335563#factEXIT >#74#return; 334060#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 335187#$Ultimate##0 ~n := #in~n; 335506#L25 assume !(~n <= 0); 335204#L26 call #t~ret0 := fact(~n - 1);< 335501#$Ultimate##0 ~n := #in~n; 335496#L25 assume !(~n <= 0); 335199#L26 call #t~ret0 := fact(~n - 1);< 335493#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335191#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335190#factFINAL assume true; 334047#factEXIT >#76#return; 334058#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 335421#$Ultimate##0 ~n := #in~n; 335419#L25 assume !(~n <= 0); 335195#L26 call #t~ret0 := fact(~n - 1);< 335307#$Ultimate##0 ~n := #in~n; 335233#L25 assume !(~n <= 0); 335228#L26 call #t~ret0 := fact(~n - 1);< 335230#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335191#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335190#factFINAL assume true; 334047#factEXIT >#78#return; 334102#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 335546#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 335538#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 335520#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 335517#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 335110#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333943#$Ultimate##0 ~n := #in~n; 335607#L25 assume !(~n <= 0); 335207#L26 call #t~ret0 := fact(~n - 1);< 335223#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335554#factFINAL assume true; 335548#factEXIT >#66#return; 335547#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335539#factFINAL assume true; 335521#factEXIT >#66#return; 335533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335616#factFINAL assume true; 335610#factEXIT >#66#return; 335609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335608#factFINAL assume true; 335099#factEXIT >#74#return; 334068#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 334024#$Ultimate##0 ~n := #in~n; 336169#L25 assume !(~n <= 0); 335205#L26 call #t~ret0 := fact(~n - 1);< 335216#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335645#factFINAL assume true; 335640#factEXIT >#66#return; 335641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335554#factFINAL assume true; 335548#factEXIT >#66#return; 335547#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335539#factFINAL assume true; 335521#factEXIT >#66#return; 335533#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335616#factFINAL assume true; 335610#factEXIT >#66#return; 335613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335854#factFINAL assume true; 335843#factEXIT >#66#return; 335697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335695#factFINAL assume true; 335681#factEXIT >#76#return; 334075#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 334024#$Ultimate##0 ~n := #in~n; 336169#L25 assume !(~n <= 0); 335205#L26 call #t~ret0 := fact(~n - 1);< 335216#$Ultimate##0 ~n := #in~n; 336167#L25 assume !(~n <= 0); 335200#L26 call #t~ret0 := fact(~n - 1);< 335229#$Ultimate##0 ~n := #in~n; 335306#L25 assume ~n <= 0;#res := 1; 335232#factFINAL assume true; 335227#factEXIT >#66#return; 335225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335218#factFINAL assume true; 335193#factEXIT >#66#return; 335191#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335190#factFINAL assume true; 334047#factEXIT >#78#return; 334108#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 334043#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 334044#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 334039#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 334040#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 334114#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 333941#$Ultimate##0 ~n := #in~n; 335186#L25 assume !(~n <= 0); 335059#L26 call #t~ret0 := fact(~n - 1);< 335116#$Ultimate##0 ~n := #in~n; 335147#L25 assume !(~n <= 0); 335055#L26 call #t~ret0 := fact(~n - 1);< 335144#$Ultimate##0 ~n := #in~n; 335147#L25 assume !(~n <= 0); 335055#L26 call #t~ret0 := fact(~n - 1);< 335144#$Ultimate##0 ~n := #in~n; 335147#L25 assume !(~n <= 0); 335055#L26 call #t~ret0 := fact(~n - 1);< 335144#$Ultimate##0 ~n := #in~n; 335150#L25 assume ~n <= 0;#res := 1; 335166#factFINAL assume true; 335142#factEXIT >#66#return; 335139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335138#factFINAL assume true; 335131#factEXIT >#66#return; 335129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335125#factFINAL assume true; 335118#factEXIT >#66#return; 335117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335114#factFINAL assume true; 335094#factEXIT >#66#return; 335097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 335164#factFINAL assume true; 335162#factEXIT >#74#return; 335074#L30-6 [2023-02-17 09:42:15,540 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:15,540 INFO L85 PathProgramCache]: Analyzing trace with hash -700173511, now seen corresponding path program 26 times [2023-02-17 09:42:15,540 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:15,540 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1000198002] [2023-02-17 09:42:15,540 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:15,540 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:15,560 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:15,560 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [579893528] [2023-02-17 09:42:15,560 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:15,560 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:15,560 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:15,564 INFO L229 MonitoredProcess]: Starting monitored process 201 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:15,565 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (201)] Waiting until timeout for monitored process [2023-02-17 09:42:16,114 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:16,114 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:16,118 INFO L263 TraceCheckSpWp]: Trace formula consists of 1117 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:42:16,121 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:16,186 INFO L134 CoverageAnalysis]: Checked inductivity of 14468 backedges. 7954 proven. 59 refuted. 0 times theorem prover too weak. 6455 trivial. 0 not checked. [2023-02-17 09:42:16,186 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:16,363 INFO L134 CoverageAnalysis]: Checked inductivity of 14468 backedges. 814 proven. 965 refuted. 0 times theorem prover too weak. 12689 trivial. 0 not checked. [2023-02-17 09:42:16,364 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:16,364 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1000198002] [2023-02-17 09:42:16,364 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:16,364 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [579893528] [2023-02-17 09:42:16,364 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [579893528] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:16,365 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:16,365 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 19] total 26 [2023-02-17 09:42:16,365 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1090734387] [2023-02-17 09:42:16,365 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:16,366 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:16,366 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:16,366 INFO L85 PathProgramCache]: Analyzing trace with hash -1775997873, now seen corresponding path program 20 times [2023-02-17 09:42:16,366 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:16,366 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [902359902] [2023-02-17 09:42:16,366 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:16,367 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:16,383 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:16,383 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2112191295] [2023-02-17 09:42:16,384 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:16,385 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:16,385 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:16,389 INFO L229 MonitoredProcess]: Starting monitored process 202 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:16,390 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (202)] Waiting until timeout for monitored process [2023-02-17 09:42:16,939 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:16,939 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:16,943 INFO L263 TraceCheckSpWp]: Trace formula consists of 1001 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:42:16,946 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:16,990 INFO L134 CoverageAnalysis]: Checked inductivity of 13675 backedges. 4643 proven. 69 refuted. 0 times theorem prover too weak. 8963 trivial. 0 not checked. [2023-02-17 09:42:16,991 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:17,111 INFO L134 CoverageAnalysis]: Checked inductivity of 13675 backedges. 243 proven. 1569 refuted. 0 times theorem prover too weak. 11863 trivial. 0 not checked. [2023-02-17 09:42:17,111 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:17,111 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [902359902] [2023-02-17 09:42:17,111 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:17,111 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2112191295] [2023-02-17 09:42:17,111 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2112191295] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:17,111 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:17,112 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 17] total 20 [2023-02-17 09:42:17,112 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1456203031] [2023-02-17 09:42:17,112 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:17,112 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:17,112 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:17,113 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2023-02-17 09:42:17,113 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=317, Unknown=0, NotChecked=0, Total=380 [2023-02-17 09:42:17,113 INFO L87 Difference]: Start difference. First operand 2407 states and 5269 transitions. cyclomatic complexity: 2887 Second operand has 20 states, 17 states have (on average 3.235294117647059) internal successors, (55), 18 states have internal predecessors, (55), 12 states have call successors, (28), 2 states have call predecessors, (28), 8 states have return successors, (31), 9 states have call predecessors, (31), 12 states have call successors, (31) [2023-02-17 09:42:17,510 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:17,510 INFO L93 Difference]: Finished difference Result 2619 states and 5438 transitions. [2023-02-17 09:42:17,510 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2619 states and 5438 transitions. [2023-02-17 09:42:17,524 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 805 [2023-02-17 09:42:17,538 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2619 states to 2615 states and 5434 transitions. [2023-02-17 09:42:17,538 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 346 [2023-02-17 09:42:17,539 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 349 [2023-02-17 09:42:17,539 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2615 states and 5434 transitions. [2023-02-17 09:42:17,539 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:17,539 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2615 states and 5434 transitions. [2023-02-17 09:42:17,540 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2615 states and 5434 transitions. [2023-02-17 09:42:17,572 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2615 to 2416. [2023-02-17 09:42:17,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2416 states, 1376 states have (on average 1.0472383720930232) internal successors, (1441), 1357 states have internal predecessors, (1441), 750 states have call successors, (806), 301 states have call predecessors, (806), 290 states have return successors, (2949), 757 states have call predecessors, (2949), 750 states have call successors, (2949) [2023-02-17 09:42:17,583 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2416 states to 2416 states and 5196 transitions. [2023-02-17 09:42:17,583 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2416 states and 5196 transitions. [2023-02-17 09:42:17,583 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-17 09:42:17,583 INFO L428 stractBuchiCegarLoop]: Abstraction has 2416 states and 5196 transitions. [2023-02-17 09:42:17,583 INFO L335 stractBuchiCegarLoop]: ======== Iteration 50 ============ [2023-02-17 09:42:17,584 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2416 states and 5196 transitions. [2023-02-17 09:42:17,589 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 630 [2023-02-17 09:42:17,590 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:17,590 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:17,592 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [78, 78, 47, 47, 47, 47, 31, 11, 10, 8, 8, 8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:17,592 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [91, 91, 70, 70, 70, 70, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:17,592 INFO L748 eck$LassoCheckResult]: Stem: 344871#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 344821#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 344822#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 344839#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 344831#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 344832#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 345733#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345729#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 345730#$Ultimate##0 ~n := #in~n; 345734#L25 assume ~n <= 0;#res := 1; 345732#factFINAL assume true; 345728#factEXIT >#68#return; 345724#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 345725#$Ultimate##0 ~n := #in~n; 345731#L25 assume ~n <= 0;#res := 1; 345727#factFINAL assume true; 345723#factEXIT >#70#return; 345720#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 345721#$Ultimate##0 ~n := #in~n; 345726#L25 assume ~n <= 0;#res := 1; 345722#factFINAL assume true; 345719#factEXIT >#72#return; 345718#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 345717#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 345716#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 345715#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 345714#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345707#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 345711#$Ultimate##0 ~n := #in~n; 345713#L25 assume !(~n <= 0); 345702#L26 call #t~ret0 := fact(~n - 1);< 345705#$Ultimate##0 ~n := #in~n; 345709#L25 assume ~n <= 0;#res := 1; 345706#factFINAL assume true; 345701#factEXIT >#66#return; 345704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345712#factFINAL assume true; 345710#factEXIT >#74#return; 345692#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 345693#$Ultimate##0 ~n := #in~n; 345698#L25 assume ~n <= 0;#res := 1; 345695#factFINAL assume true; 345691#factEXIT >#76#return; 345688#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 345689#$Ultimate##0 ~n := #in~n; 345708#L25 assume !(~n <= 0); 345703#L26 call #t~ret0 := fact(~n - 1);< 345705#$Ultimate##0 ~n := #in~n; 345709#L25 assume ~n <= 0;#res := 1; 345706#factFINAL assume true; 345701#factEXIT >#66#return; 345699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345697#factFINAL assume true; 345687#factEXIT >#78#return; 345686#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 345685#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 345684#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 345683#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 345676#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345642#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 345644#$Ultimate##0 ~n := #in~n; 345655#L25 assume !(~n <= 0); 345650#L26 call #t~ret0 := fact(~n - 1);< 345652#$Ultimate##0 ~n := #in~n; 345674#L25 assume !(~n <= 0); 345651#L26 call #t~ret0 := fact(~n - 1);< 345663#$Ultimate##0 ~n := #in~n; 345681#L25 assume ~n <= 0;#res := 1; 345675#factFINAL assume true; 345671#factEXIT >#66#return; 345670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345667#factFINAL assume true; 345659#factEXIT >#66#return; 345661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345696#factFINAL assume true; 345682#factEXIT >#74#return; 345679#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 345680#$Ultimate##0 ~n := #in~n; 345694#L25 assume ~n <= 0;#res := 1; 345690#factFINAL assume true; 345678#factEXIT >#76#return; 345665#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 345666#$Ultimate##0 ~n := #in~n; 345669#L25 assume !(~n <= 0); 345660#L26 call #t~ret0 := fact(~n - 1);< 345668#$Ultimate##0 ~n := #in~n; 345700#L25 assume !(~n <= 0); 345672#L26 call #t~ret0 := fact(~n - 1);< 345673#$Ultimate##0 ~n := #in~n; 345681#L25 assume ~n <= 0;#res := 1; 345675#factFINAL assume true; 345671#factEXIT >#66#return; 345670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345667#factFINAL assume true; 345659#factEXIT >#66#return; 345662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345677#factFINAL assume true; 345664#factEXIT >#78#return; 345658#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 345656#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 345653#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 345648#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 345646#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345643#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 345644#$Ultimate##0 ~n := #in~n; 345655#L25 assume !(~n <= 0); 345650#L26 call #t~ret0 := fact(~n - 1);< 345652#$Ultimate##0 ~n := #in~n; 345674#L25 assume !(~n <= 0); 345651#L26 call #t~ret0 := fact(~n - 1);< 345663#$Ultimate##0 ~n := #in~n; 345674#L25 assume !(~n <= 0); 345651#L26 call #t~ret0 := fact(~n - 1);< 345663#$Ultimate##0 ~n := #in~n; 345681#L25 assume ~n <= 0;#res := 1; 345675#factFINAL assume true; 345671#factEXIT >#66#return; 345670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345667#factFINAL assume true; 345659#factEXIT >#66#return; 345657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345654#factFINAL assume true; 345649#factEXIT >#66#return; 345647#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345645#factFINAL assume true; 345641#factEXIT >#74#return; 345628#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 345630#$Ultimate##0 ~n := #in~n; 345634#L25 assume ~n <= 0;#res := 1; 345631#factFINAL assume true; 345627#factEXIT >#76#return; 345118#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 345616#$Ultimate##0 ~n := #in~n; 345613#L25 assume !(~n <= 0); 345589#L26 call #t~ret0 := fact(~n - 1);< 345605#$Ultimate##0 ~n := #in~n; 345638#L25 assume !(~n <= 0); 345593#L26 call #t~ret0 := fact(~n - 1);< 345596#$Ultimate##0 ~n := #in~n; 345626#L25 assume !(~n <= 0); 345588#L26 call #t~ret0 := fact(~n - 1);< 345622#$Ultimate##0 ~n := #in~n; 345624#L25 assume ~n <= 0;#res := 1; 345623#factFINAL assume true; 345621#factEXIT >#66#return; 345620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345617#factFINAL assume true; 345614#factEXIT >#66#return; 345611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345610#factFINAL assume true; 345604#factEXIT >#66#return; 345594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345855#factFINAL assume true; 345117#factEXIT >#78#return; 345120#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 345062#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 345063#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 345056#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 345057#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 344980#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344982#$Ultimate##0 ~n := #in~n; 345027#L25 assume !(~n <= 0); 345024#L26 call #t~ret0 := fact(~n - 1);< 345026#$Ultimate##0 ~n := #in~n; 345040#L25 assume !(~n <= 0); 345025#L26 call #t~ret0 := fact(~n - 1);< 345036#$Ultimate##0 ~n := #in~n; 345040#L25 assume !(~n <= 0); 345025#L26 call #t~ret0 := fact(~n - 1);< 345036#$Ultimate##0 ~n := #in~n; 345040#L25 assume !(~n <= 0); 345025#L26 call #t~ret0 := fact(~n - 1);< 345036#$Ultimate##0 ~n := #in~n; 345059#L25 assume ~n <= 0;#res := 1; 345058#factFINAL assume true; 345055#factEXIT >#66#return; 345054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345049#factFINAL assume true; 345046#factEXIT >#66#return; 345043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345039#factFINAL assume true; 345035#factEXIT >#66#return; 345031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345029#factFINAL assume true; 345023#factEXIT >#66#return; 345019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345015#factFINAL assume true; 344979#factEXIT >#74#return; 344981#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344994#$Ultimate##0 ~n := #in~n; 345008#L25 assume ~n <= 0;#res := 1; 345002#factFINAL assume true; 344993#factEXIT >#76#return; 344961#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 344992#$Ultimate##0 ~n := #in~n; 344991#L25 assume !(~n <= 0); 344925#L26 call #t~ret0 := fact(~n - 1);< 344962#$Ultimate##0 ~n := #in~n; 345001#L25 assume !(~n <= 0); 344924#L26 call #t~ret0 := fact(~n - 1);< 344978#$Ultimate##0 ~n := #in~n; 344988#L25 assume !(~n <= 0); 344928#L26 call #t~ret0 := fact(~n - 1);< 344987#$Ultimate##0 ~n := #in~n; 344988#L25 assume !(~n <= 0); 344928#L26 call #t~ret0 := fact(~n - 1);< 344987#$Ultimate##0 ~n := #in~n; 344988#L25 assume !(~n <= 0); 344928#L26 call #t~ret0 := fact(~n - 1);< 344987#$Ultimate##0 ~n := #in~n; 344990#L25 assume ~n <= 0;#res := 1; 344989#factFINAL assume true; 344986#factEXIT >#66#return; 344985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 344984#factFINAL assume true; 344977#factEXIT >#66#return; 344976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 344975#factFINAL assume true; 344974#factEXIT >#66#return; 344970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 344969#factFINAL assume true; 344965#factEXIT >#66#return; 344963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 344960#factFINAL assume true; 344957#factEXIT >#66#return; 344933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345134#factFINAL assume true; 345127#factEXIT >#78#return; 344902#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346334#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 346332#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346330#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 346326#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 346324#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 346319#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346315#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 346293#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344859#$Ultimate##0 ~n := #in~n; 346329#L25 assume !(~n <= 0); 346322#L26 call #t~ret0 := fact(~n - 1);< 346323#$Ultimate##0 ~n := #in~n; 346331#L25 assume ~n <= 0;#res := 1; 346327#factFINAL assume true; 346321#factEXIT >#66#return; 346318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346314#factFINAL assume true; 346310#factEXIT >#68#return; 346291#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 346307#$Ultimate##0 ~n := #in~n; 346313#L25 assume ~n <= 0;#res := 1; 346309#factFINAL assume true; 346285#factEXIT >#70#return; 346281#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346282#$Ultimate##0 ~n := #in~n; 346317#L25 assume !(~n <= 0); 344827#L26 call #t~ret0 := fact(~n - 1);< 346312#$Ultimate##0 ~n := #in~n; 346320#L25 assume ~n <= 0;#res := 1; 346316#factFINAL assume true; 346311#factEXIT >#66#return; 346308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346284#factFINAL assume true; 346280#factEXIT >#72#return; 346277#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346276#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 346269#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346267#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346266#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 346230#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 346265#$Ultimate##0 ~n := #in~n; 346527#L25 assume !(~n <= 0); 346037#L26 call #t~ret0 := fact(~n - 1);< 346477#$Ultimate##0 ~n := #in~n; 346283#L25 assume ~n <= 0;#res := 1; 346278#factFINAL assume true; 346270#factEXIT >#66#return; 346268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346264#factFINAL assume true; 346159#factEXIT >#68#return; 346236#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 346262#$Ultimate##0 ~n := #in~n; 346335#L25 assume !(~n <= 0); 346046#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346283#L25 assume ~n <= 0;#res := 1; 346278#factFINAL assume true; 346270#factEXIT >#66#return; 346268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346264#factFINAL assume true; 346159#factEXIT >#70#return; 346086#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346157#$Ultimate##0 ~n := #in~n; 346263#L25 assume ~n <= 0;#res := 1; 346158#factFINAL assume true; 346085#factEXIT >#72#return; 346084#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346082#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 346079#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346054#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346027#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345185#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 346021#$Ultimate##0 ~n := #in~n; 346484#L25 assume !(~n <= 0); 346043#L26 call #t~ret0 := fact(~n - 1);< 346477#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346020#factFINAL assume true; 345181#factEXIT >#74#return; 344867#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344868#$Ultimate##0 ~n := #in~n; 346529#L25 assume !(~n <= 0); 346044#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346283#L25 assume ~n <= 0;#res := 1; 346278#factFINAL assume true; 346270#factEXIT >#66#return; 346273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346404#factFINAL assume true; 346396#factEXIT >#76#return; 346397#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346449#$Ultimate##0 ~n := #in~n; 346448#L25 assume !(~n <= 0); 346271#L26 call #t~ret0 := fact(~n - 1);< 346279#$Ultimate##0 ~n := #in~n; 346283#L25 assume ~n <= 0;#res := 1; 346278#factFINAL assume true; 346270#factEXIT >#66#return; 346273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346404#factFINAL assume true; 346396#factEXIT >#78#return; 346401#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346483#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 346482#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346481#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346479#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345972#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344785#$Ultimate##0 ~n := #in~n; 346461#L25 assume !(~n <= 0); 346048#L26 call #t~ret0 := fact(~n - 1);< 346072#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346388#factFINAL assume true; 346373#factEXIT >#74#return; 345228#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344868#$Ultimate##0 ~n := #in~n; 346529#L25 assume !(~n <= 0); 346044#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346283#L25 assume ~n <= 0;#res := 1; 346278#factFINAL assume true; 346270#factEXIT >#66#return; 346273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346404#factFINAL assume true; 346396#factEXIT >#76#return; 345226#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346356#$Ultimate##0 ~n := #in~n; 346355#L25 assume !(~n <= 0); 346036#L26 call #t~ret0 := fact(~n - 1);< 346340#$Ultimate##0 ~n := #in~n; 346338#L25 assume !(~n <= 0); 346076#L26 call #t~ret0 := fact(~n - 1);< 346078#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346020#factFINAL assume true; 345181#factEXIT >#78#return; 345243#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 344842#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 344843#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346585#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346584#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345961#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344785#$Ultimate##0 ~n := #in~n; 346461#L25 assume !(~n <= 0); 346048#L26 call #t~ret0 := fact(~n - 1);< 346072#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346416#factFINAL assume true; 346375#factEXIT >#66#return; 346372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346368#factFINAL assume true; 346365#factEXIT >#74#return; 345187#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344868#$Ultimate##0 ~n := #in~n; 346529#L25 assume !(~n <= 0); 346044#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346283#L25 assume ~n <= 0;#res := 1; 346278#factFINAL assume true; 346270#factEXIT >#66#return; 346273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346404#factFINAL assume true; 346396#factEXIT >#76#return; 346363#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346369#$Ultimate##0 ~n := #in~n; 346362#L25 assume !(~n <= 0); 346358#L26 call #t~ret0 := fact(~n - 1);< 346361#$Ultimate##0 ~n := #in~n; 346360#L25 assume !(~n <= 0); 346039#L26 call #t~ret0 := fact(~n - 1);< 346351#$Ultimate##0 ~n := #in~n; 346349#L25 assume !(~n <= 0); 346038#L26 call #t~ret0 := fact(~n - 1);< 346347#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346388#factFINAL assume true; 346373#factEXIT >#78#return; 345953#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 345951#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 345944#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 345934#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 345930#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 344782#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344783#$Ultimate##0 ~n := #in~n; 346015#L25 assume !(~n <= 0); 345902#L26 call #t~ret0 := fact(~n - 1);< 345942#$Ultimate##0 ~n := #in~n; 346004#L25 assume !(~n <= 0); 345897#L26 call #t~ret0 := fact(~n - 1);< 345995#$Ultimate##0 ~n := #in~n; 346004#L25 assume !(~n <= 0); 345897#L26 call #t~ret0 := fact(~n - 1);< 345995#$Ultimate##0 ~n := #in~n; 346004#L25 assume !(~n <= 0); 345897#L26 call #t~ret0 := fact(~n - 1);< 345995#$Ultimate##0 ~n := #in~n; 345999#L25 assume ~n <= 0;#res := 1; 346002#factFINAL assume true; 345992#factEXIT >#66#return; 345991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345990#factFINAL assume true; 345981#factEXIT >#66#return; 345979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345976#factFINAL assume true; 345954#factEXIT >#66#return; 345952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345945#factFINAL assume true; 345935#factEXIT >#66#return; 345932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345925#factFINAL assume true; 345921#factEXIT >#74#return; 345918#L30-6 [2023-02-17 09:42:17,593 INFO L750 eck$LassoCheckResult]: Loop: 345918#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 345920#$Ultimate##0 ~n := #in~n; 345919#L25 assume !(~n <= 0); 345912#L26 call #t~ret0 := fact(~n - 1);< 345915#$Ultimate##0 ~n := #in~n; 345916#L25 assume ~n <= 0;#res := 1; 346080#factFINAL assume true; 346055#factEXIT >#66#return; 346028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346023#factFINAL assume true; 345987#factEXIT >#76#return; 345922#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 345926#$Ultimate##0 ~n := #in~n; 346006#L25 assume !(~n <= 0); 345936#L26 call #t~ret0 := fact(~n - 1);< 345939#$Ultimate##0 ~n := #in~n; 345989#L25 assume !(~n <= 0); 345956#L26 call #t~ret0 := fact(~n - 1);< 345958#$Ultimate##0 ~n := #in~n; 346022#L25 assume !(~n <= 0); 345982#L26 call #t~ret0 := fact(~n - 1);< 345985#$Ultimate##0 ~n := #in~n; 345998#L25 assume !(~n <= 0); 345993#L26 call #t~ret0 := fact(~n - 1);< 345994#$Ultimate##0 ~n := #in~n; 345999#L25 assume ~n <= 0;#res := 1; 346002#factFINAL assume true; 345992#factEXIT >#66#return; 345991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345990#factFINAL assume true; 345981#factEXIT >#66#return; 345979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345976#factFINAL assume true; 345954#factEXIT >#66#return; 345952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345945#factFINAL assume true; 345935#factEXIT >#66#return; 345932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345925#factFINAL assume true; 345921#factEXIT >#78#return; 344823#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 344824#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 344869#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 344870#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 344837#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 344838#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 344851#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 344852#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 344799#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344800#$Ultimate##0 ~n := #in~n; 347026#L25 assume !(~n <= 0); 347022#L26 call #t~ret0 := fact(~n - 1);< 347025#$Ultimate##0 ~n := #in~n; 346333#L25 assume !(~n <= 0); 347021#L26 call #t~ret0 := fact(~n - 1);< 347034#$Ultimate##0 ~n := #in~n; 346333#L25 assume !(~n <= 0); 347021#L26 call #t~ret0 := fact(~n - 1);< 347034#$Ultimate##0 ~n := #in~n; 346333#L25 assume !(~n <= 0); 347021#L26 call #t~ret0 := fact(~n - 1);< 347034#$Ultimate##0 ~n := #in~n; 346333#L25 assume !(~n <= 0); 347021#L26 call #t~ret0 := fact(~n - 1);< 347034#$Ultimate##0 ~n := #in~n; 346333#L25 assume !(~n <= 0); 347021#L26 call #t~ret0 := fact(~n - 1);< 347034#$Ultimate##0 ~n := #in~n; 346333#L25 assume !(~n <= 0); 347021#L26 call #t~ret0 := fact(~n - 1);< 347034#$Ultimate##0 ~n := #in~n; 346333#L25 assume !(~n <= 0); 347021#L26 call #t~ret0 := fact(~n - 1);< 347034#$Ultimate##0 ~n := #in~n; 347035#L25 assume ~n <= 0;#res := 1; 347049#factFINAL assume true; 347048#factEXIT >#66#return; 347047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347045#factFINAL assume true; 347020#factEXIT >#66#return; 347023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347046#factFINAL assume true; 347044#factEXIT >#66#return; 347043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347042#factFINAL assume true; 347041#factEXIT >#66#return; 347040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347039#factFINAL assume true; 347036#factEXIT >#66#return; 347037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347112#factFINAL assume true; 347108#factEXIT >#66#return; 347109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347115#factFINAL assume true; 347030#factEXIT >#66#return; 347031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347032#factFINAL assume true; 347033#factEXIT >#66#return; 347114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347113#factFINAL assume true; 347019#factEXIT >#68#return; 344858#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344859#$Ultimate##0 ~n := #in~n; 346329#L25 assume ~n <= 0;#res := 1; 346309#factFINAL assume true; 346285#factEXIT >#70#return; 344856#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 344796#$Ultimate##0 ~n := #in~n; 344855#L25 assume !(~n <= 0); 344811#L26 call #t~ret0 := fact(~n - 1);< 347059#$Ultimate##0 ~n := #in~n; 344857#L25 assume !(~n <= 0); 344814#L26 call #t~ret0 := fact(~n - 1);< 344830#$Ultimate##0 ~n := #in~n; 347134#L25 assume !(~n <= 0); 344812#L26 call #t~ret0 := fact(~n - 1);< 347132#$Ultimate##0 ~n := #in~n; 347129#L25 assume !(~n <= 0); 344809#L26 call #t~ret0 := fact(~n - 1);< 347127#$Ultimate##0 ~n := #in~n; 347126#L25 assume !(~n <= 0); 344810#L26 call #t~ret0 := fact(~n - 1);< 347125#$Ultimate##0 ~n := #in~n; 347123#L25 assume !(~n <= 0); 344807#L26 call #t~ret0 := fact(~n - 1);< 347121#$Ultimate##0 ~n := #in~n; 347120#L25 assume !(~n <= 0); 344805#L26 call #t~ret0 := fact(~n - 1);< 347119#$Ultimate##0 ~n := #in~n; 347118#L25 assume !(~n <= 0); 344787#L26 call #t~ret0 := fact(~n - 1);< 347117#$Ultimate##0 ~n := #in~n; 344862#L25 assume ~n <= 0;#res := 1; 347116#factFINAL assume true; 344786#factEXIT >#66#return; 344789#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347151#factFINAL assume true; 347146#factEXIT >#66#return; 347147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347171#factFINAL assume true; 347057#factEXIT >#66#return; 347058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347165#factFINAL assume true; 347164#factEXIT >#66#return; 347163#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347162#factFINAL assume true; 347157#factEXIT >#66#return; 347158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347161#factFINAL assume true; 347160#factEXIT >#66#return; 347159#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347154#factFINAL assume true; 347153#factEXIT >#66#return; 344849#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 344803#factFINAL assume true; 344815#factEXIT >#66#return; 347145#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 347143#factFINAL assume true; 347140#factEXIT >#72#return; 345249#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346619#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 346618#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346617#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346616#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 346068#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 346446#$Ultimate##0 ~n := #in~n; 346525#L25 assume !(~n <= 0); 346031#L26 call #t~ret0 := fact(~n - 1);< 346072#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346416#factFINAL assume true; 346375#factEXIT >#66#return; 346384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346548#factFINAL assume true; 346451#factEXIT >#66#return; 346457#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346512#factFINAL assume true; 346508#factEXIT >#66#return; 346510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346545#factFINAL assume true; 346466#factEXIT >#66#return; 346473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346645#factFINAL assume true; 346533#factEXIT >#68#return; 346212#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 346265#$Ultimate##0 ~n := #in~n; 346527#L25 assume !(~n <= 0); 346037#L26 call #t~ret0 := fact(~n - 1);< 346477#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346416#factFINAL assume true; 346375#factEXIT >#66#return; 346384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346548#factFINAL assume true; 346451#factEXIT >#66#return; 346457#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346512#factFINAL assume true; 346508#factEXIT >#66#return; 346510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346545#factFINAL assume true; 346466#factEXIT >#66#return; 346473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346645#factFINAL assume true; 346533#factEXIT >#70#return; 346120#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346532#$Ultimate##0 ~n := #in~n; 346531#L25 assume ~n <= 0;#res := 1; 346158#factFINAL assume true; 346085#factEXIT >#72#return; 346155#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346615#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 346614#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346613#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346610#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 346062#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 346446#$Ultimate##0 ~n := #in~n; 346525#L25 assume !(~n <= 0); 346031#L26 call #t~ret0 := fact(~n - 1);< 346072#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346416#factFINAL assume true; 346375#factEXIT >#66#return; 346384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346548#factFINAL assume true; 346451#factEXIT >#66#return; 346456#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346570#factFINAL assume true; 346504#factEXIT >#68#return; 346180#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 346262#$Ultimate##0 ~n := #in~n; 346335#L25 assume !(~n <= 0); 346046#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346588#L25 assume !(~n <= 0); 346045#L26 call #t~ret0 := fact(~n - 1);< 346077#$Ultimate##0 ~n := #in~n; 346561#L25 assume !(~n <= 0); 346035#L26 call #t~ret0 := fact(~n - 1);< 346357#$Ultimate##0 ~n := #in~n; 346349#L25 assume !(~n <= 0); 346038#L26 call #t~ret0 := fact(~n - 1);< 346347#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346416#factFINAL assume true; 346375#factEXIT >#66#return; 346383#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346542#factFINAL assume true; 346445#factEXIT >#70#return; 346132#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346354#$Ultimate##0 ~n := #in~n; 346353#L25 assume ~n <= 0;#res := 1; 346158#factFINAL assume true; 346085#factEXIT >#72#return; 346148#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346612#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 346611#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346605#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346589#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 344784#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344785#$Ultimate##0 ~n := #in~n; 346461#L25 assume !(~n <= 0); 346048#L26 call #t~ret0 := fact(~n - 1);< 346072#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346388#factFINAL assume true; 346373#factEXIT >#74#return; 345205#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344868#$Ultimate##0 ~n := #in~n; 346529#L25 assume !(~n <= 0); 346044#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346588#L25 assume !(~n <= 0); 346045#L26 call #t~ret0 := fact(~n - 1);< 346077#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346020#factFINAL assume true; 345181#factEXIT >#76#return; 345208#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346356#$Ultimate##0 ~n := #in~n; 346355#L25 assume !(~n <= 0); 346036#L26 call #t~ret0 := fact(~n - 1);< 346340#$Ultimate##0 ~n := #in~n; 346283#L25 assume ~n <= 0;#res := 1; 346278#factFINAL assume true; 346270#factEXIT >#66#return; 346273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346404#factFINAL assume true; 346396#factEXIT >#78#return; 346399#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346523#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 346522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346521#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346506#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 345968#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344785#$Ultimate##0 ~n := #in~n; 346461#L25 assume !(~n <= 0); 346048#L26 call #t~ret0 := fact(~n - 1);< 346072#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346416#factFINAL assume true; 346375#factEXIT >#66#return; 346372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346368#factFINAL assume true; 346365#factEXIT >#74#return; 345235#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344868#$Ultimate##0 ~n := #in~n; 346529#L25 assume !(~n <= 0); 346044#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346588#L25 assume !(~n <= 0); 346045#L26 call #t~ret0 := fact(~n - 1);< 346077#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346020#factFINAL assume true; 345181#factEXIT >#76#return; 345184#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346356#$Ultimate##0 ~n := #in~n; 346355#L25 assume !(~n <= 0); 346036#L26 call #t~ret0 := fact(~n - 1);< 346340#$Ultimate##0 ~n := #in~n; 346338#L25 assume !(~n <= 0); 346076#L26 call #t~ret0 := fact(~n - 1);< 346078#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346020#factFINAL assume true; 345181#factEXIT >#78#return; 345237#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346415#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 346414#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346413#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 346412#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 344879#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344785#$Ultimate##0 ~n := #in~n; 346461#L25 assume !(~n <= 0); 346048#L26 call #t~ret0 := fact(~n - 1);< 346072#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346530#L25 assume !(~n <= 0); 346032#L26 call #t~ret0 := fact(~n - 1);< 346503#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346402#factFINAL assume true; 346392#factEXIT >#66#return; 346394#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346416#factFINAL assume true; 346375#factEXIT >#66#return; 346372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346368#factFINAL assume true; 346365#factEXIT >#74#return; 345188#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 344868#$Ultimate##0 ~n := #in~n; 346529#L25 assume !(~n <= 0); 346044#L26 call #t~ret0 := fact(~n - 1);< 346275#$Ultimate##0 ~n := #in~n; 346588#L25 assume !(~n <= 0); 346045#L26 call #t~ret0 := fact(~n - 1);< 346077#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346020#factFINAL assume true; 345181#factEXIT >#76#return; 345201#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 346356#$Ultimate##0 ~n := #in~n; 346355#L25 assume !(~n <= 0); 346036#L26 call #t~ret0 := fact(~n - 1);< 346340#$Ultimate##0 ~n := #in~n; 346338#L25 assume !(~n <= 0); 346076#L26 call #t~ret0 := fact(~n - 1);< 346078#$Ultimate##0 ~n := #in~n; 346083#L25 assume ~n <= 0;#res := 1; 346081#factFINAL assume true; 346075#factEXIT >#66#return; 346073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346057#factFINAL assume true; 346030#factEXIT >#66#return; 346026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 346020#factFINAL assume true; 345181#factEXIT >#78#return; 345242#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 346420#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 346419#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 346418#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 344878#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 344880#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 344783#$Ultimate##0 ~n := #in~n; 346015#L25 assume !(~n <= 0); 345902#L26 call #t~ret0 := fact(~n - 1);< 345942#$Ultimate##0 ~n := #in~n; 346004#L25 assume !(~n <= 0); 345897#L26 call #t~ret0 := fact(~n - 1);< 345995#$Ultimate##0 ~n := #in~n; 346004#L25 assume !(~n <= 0); 345897#L26 call #t~ret0 := fact(~n - 1);< 345995#$Ultimate##0 ~n := #in~n; 346004#L25 assume !(~n <= 0); 345897#L26 call #t~ret0 := fact(~n - 1);< 345995#$Ultimate##0 ~n := #in~n; 345999#L25 assume ~n <= 0;#res := 1; 346002#factFINAL assume true; 345992#factEXIT >#66#return; 345991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345990#factFINAL assume true; 345981#factEXIT >#66#return; 345979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345976#factFINAL assume true; 345954#factEXIT >#66#return; 345952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345945#factFINAL assume true; 345935#factEXIT >#66#return; 345932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 345925#factFINAL assume true; 345921#factEXIT >#74#return; 345918#L30-6 [2023-02-17 09:42:17,599 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:17,599 INFO L85 PathProgramCache]: Analyzing trace with hash -700173511, now seen corresponding path program 27 times [2023-02-17 09:42:17,599 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:17,599 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1088586941] [2023-02-17 09:42:17,599 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:17,599 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:17,613 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:17,613 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2064086148] [2023-02-17 09:42:17,613 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:17,613 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:17,614 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:17,615 INFO L229 MonitoredProcess]: Starting monitored process 203 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:17,616 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (203)] Waiting until timeout for monitored process [2023-02-17 09:42:18,103 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2023-02-17 09:42:18,104 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:18,106 INFO L263 TraceCheckSpWp]: Trace formula consists of 530 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-17 09:42:18,109 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:18,194 INFO L134 CoverageAnalysis]: Checked inductivity of 14468 backedges. 2372 proven. 167 refuted. 0 times theorem prover too weak. 11929 trivial. 0 not checked. [2023-02-17 09:42:18,195 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:18,412 INFO L134 CoverageAnalysis]: Checked inductivity of 14468 backedges. 2372 proven. 187 refuted. 0 times theorem prover too weak. 11909 trivial. 0 not checked. [2023-02-17 09:42:18,412 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:18,412 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1088586941] [2023-02-17 09:42:18,412 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:18,413 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2064086148] [2023-02-17 09:42:18,413 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2064086148] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:18,413 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:18,413 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 23] total 26 [2023-02-17 09:42:18,413 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1520233934] [2023-02-17 09:42:18,413 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:18,414 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:18,414 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:18,414 INFO L85 PathProgramCache]: Analyzing trace with hash 1813326551, now seen corresponding path program 21 times [2023-02-17 09:42:18,414 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:18,414 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1693248961] [2023-02-17 09:42:18,414 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:18,414 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:18,427 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:18,427 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [747634857] [2023-02-17 09:42:18,427 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:18,427 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:18,427 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:18,430 INFO L229 MonitoredProcess]: Starting monitored process 204 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:18,431 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (204)] Waiting until timeout for monitored process [2023-02-17 09:42:18,889 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2023-02-17 09:42:18,889 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:18,890 INFO L263 TraceCheckSpWp]: Trace formula consists of 202 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-17 09:42:18,893 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:18,967 INFO L134 CoverageAnalysis]: Checked inductivity of 21325 backedges. 3151 proven. 230 refuted. 0 times theorem prover too weak. 17944 trivial. 0 not checked. [2023-02-17 09:42:18,968 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:19,314 INFO L134 CoverageAnalysis]: Checked inductivity of 21325 backedges. 3151 proven. 255 refuted. 0 times theorem prover too weak. 17919 trivial. 0 not checked. [2023-02-17 09:42:19,314 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:19,314 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1693248961] [2023-02-17 09:42:19,315 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:19,315 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [747634857] [2023-02-17 09:42:19,315 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [747634857] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:19,316 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:19,316 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 23] total 26 [2023-02-17 09:42:19,316 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [281666084] [2023-02-17 09:42:19,316 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:19,317 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:19,317 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:19,318 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2023-02-17 09:42:19,318 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=604, Unknown=0, NotChecked=0, Total=702 [2023-02-17 09:42:19,318 INFO L87 Difference]: Start difference. First operand 2416 states and 5196 transitions. cyclomatic complexity: 2805 Second operand has 27 states, 23 states have (on average 3.1739130434782608) internal successors, (73), 26 states have internal predecessors, (73), 15 states have call successors, (29), 1 states have call predecessors, (29), 9 states have return successors, (33), 14 states have call predecessors, (33), 15 states have call successors, (33) [2023-02-17 09:42:20,123 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:20,124 INFO L93 Difference]: Finished difference Result 2619 states and 5559 transitions. [2023-02-17 09:42:20,124 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2619 states and 5559 transitions. [2023-02-17 09:42:20,140 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 749 [2023-02-17 09:42:20,157 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2619 states to 2617 states and 5550 transitions. [2023-02-17 09:42:20,157 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 389 [2023-02-17 09:42:20,158 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 389 [2023-02-17 09:42:20,158 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2617 states and 5550 transitions. [2023-02-17 09:42:20,158 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:20,158 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2617 states and 5550 transitions. [2023-02-17 09:42:20,159 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2617 states and 5550 transitions. [2023-02-17 09:42:20,202 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2617 to 2441. [2023-02-17 09:42:20,203 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2441 states, 1389 states have (on average 1.0475161987041037) internal successors, (1455), 1371 states have internal predecessors, (1455), 762 states have call successors, (818), 305 states have call predecessors, (818), 290 states have return successors, (3012), 764 states have call predecessors, (3012), 762 states have call successors, (3012) [2023-02-17 09:42:20,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2441 states to 2441 states and 5285 transitions. [2023-02-17 09:42:20,212 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2441 states and 5285 transitions. [2023-02-17 09:42:20,212 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2023-02-17 09:42:20,213 INFO L428 stractBuchiCegarLoop]: Abstraction has 2441 states and 5285 transitions. [2023-02-17 09:42:20,213 INFO L335 stractBuchiCegarLoop]: ======== Iteration 51 ============ [2023-02-17 09:42:20,213 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2441 states and 5285 transitions. [2023-02-17 09:42:20,220 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 643 [2023-02-17 09:42:20,220 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:20,220 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:20,223 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [79, 79, 48, 48, 48, 48, 31, 11, 10, 8, 8, 8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:20,223 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [93, 93, 72, 72, 72, 72, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:20,223 INFO L748 eck$LassoCheckResult]: Stem: 356347#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 356297#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 356298#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 356316#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 356308#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 356309#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357381#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 357377#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357378#$Ultimate##0 ~n := #in~n; 357382#L25 assume ~n <= 0;#res := 1; 357380#factFINAL assume true; 357376#factEXIT >#68#return; 357372#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357373#$Ultimate##0 ~n := #in~n; 357379#L25 assume ~n <= 0;#res := 1; 357375#factFINAL assume true; 357371#factEXIT >#70#return; 357368#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357369#$Ultimate##0 ~n := #in~n; 357374#L25 assume ~n <= 0;#res := 1; 357370#factFINAL assume true; 357367#factEXIT >#72#return; 357366#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357365#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 357361#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357362#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357357#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 357358#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357394#$Ultimate##0 ~n := #in~n; 357404#L25 assume !(~n <= 0); 357400#L26 call #t~ret0 := fact(~n - 1);< 357402#$Ultimate##0 ~n := #in~n; 357405#L25 assume ~n <= 0;#res := 1; 357403#factFINAL assume true; 357398#factEXIT >#66#return; 357397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357396#factFINAL assume true; 357393#factEXIT >#74#return; 357390#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357391#$Ultimate##0 ~n := #in~n; 357395#L25 assume ~n <= 0;#res := 1; 357392#factFINAL assume true; 357389#factEXIT >#76#return; 357387#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357388#$Ultimate##0 ~n := #in~n; 357406#L25 assume !(~n <= 0); 357399#L26 call #t~ret0 := fact(~n - 1);< 357402#$Ultimate##0 ~n := #in~n; 357405#L25 assume ~n <= 0;#res := 1; 357403#factFINAL assume true; 357398#factEXIT >#66#return; 357401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357407#factFINAL assume true; 357386#factEXIT >#78#return; 357384#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357363#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 357364#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357359#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357360#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 357353#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357355#$Ultimate##0 ~n := #in~n; 357418#L25 assume !(~n <= 0); 357411#L26 call #t~ret0 := fact(~n - 1);< 357416#$Ultimate##0 ~n := #in~n; 357431#L25 assume !(~n <= 0); 357413#L26 call #t~ret0 := fact(~n - 1);< 357430#$Ultimate##0 ~n := #in~n; 357511#L25 assume ~n <= 0;#res := 1; 357509#factFINAL assume true; 357427#factEXIT >#66#return; 357425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357421#factFINAL assume true; 357410#factEXIT >#66#return; 357409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357408#factFINAL assume true; 357352#factEXIT >#74#return; 357349#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357350#$Ultimate##0 ~n := #in~n; 357419#L25 assume ~n <= 0;#res := 1; 357417#factFINAL assume true; 357348#factEXIT >#76#return; 356350#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 356351#$Ultimate##0 ~n := #in~n; 357449#L25 assume !(~n <= 0); 357412#L26 call #t~ret0 := fact(~n - 1);< 357422#$Ultimate##0 ~n := #in~n; 357510#L25 assume !(~n <= 0); 357428#L26 call #t~ret0 := fact(~n - 1);< 357429#$Ultimate##0 ~n := #in~n; 357511#L25 assume ~n <= 0;#res := 1; 357509#factFINAL assume true; 357427#factEXIT >#66#return; 357425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357421#factFINAL assume true; 357410#factEXIT >#66#return; 357414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357736#factFINAL assume true; 357734#factEXIT >#78#return; 356301#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 356302#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 356319#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357423#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357420#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 357354#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357355#$Ultimate##0 ~n := #in~n; 357418#L25 assume !(~n <= 0); 357411#L26 call #t~ret0 := fact(~n - 1);< 357416#$Ultimate##0 ~n := #in~n; 357431#L25 assume !(~n <= 0); 357413#L26 call #t~ret0 := fact(~n - 1);< 357430#$Ultimate##0 ~n := #in~n; 357431#L25 assume !(~n <= 0); 357413#L26 call #t~ret0 := fact(~n - 1);< 357430#$Ultimate##0 ~n := #in~n; 357511#L25 assume ~n <= 0;#res := 1; 357509#factFINAL assume true; 357427#factEXIT >#66#return; 357425#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357421#factFINAL assume true; 357410#factEXIT >#66#return; 357415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358162#factFINAL assume true; 358161#factEXIT >#66#return; 358160#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358158#factFINAL assume true; 358153#factEXIT >#74#return; 358148#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 358150#$Ultimate##0 ~n := #in~n; 358176#L25 assume ~n <= 0;#res := 1; 358172#factFINAL assume true; 358147#factEXIT >#76#return; 358026#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 358031#$Ultimate##0 ~n := #in~n; 358028#L25 assume !(~n <= 0); 358004#L26 call #t~ret0 := fact(~n - 1);< 358019#$Ultimate##0 ~n := #in~n; 358094#L25 assume !(~n <= 0); 358005#L26 call #t~ret0 := fact(~n - 1);< 358008#$Ultimate##0 ~n := #in~n; 358091#L25 assume !(~n <= 0); 358000#L26 call #t~ret0 := fact(~n - 1);< 358087#$Ultimate##0 ~n := #in~n; 358113#L25 assume ~n <= 0;#res := 1; 358112#factFINAL assume true; 358086#factEXIT >#66#return; 358085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358084#factFINAL assume true; 358066#factEXIT >#66#return; 358064#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358024#factFINAL assume true; 358018#factEXIT >#66#return; 358007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358408#factFINAL assume true; 358154#factEXIT >#78#return; 358155#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 356625#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 356626#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 356607#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 356608#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356499#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 356500#$Ultimate##0 ~n := #in~n; 356509#L25 assume !(~n <= 0); 356506#L26 call #t~ret0 := fact(~n - 1);< 356508#$Ultimate##0 ~n := #in~n; 356516#L25 assume !(~n <= 0); 356507#L26 call #t~ret0 := fact(~n - 1);< 356515#$Ultimate##0 ~n := #in~n; 356516#L25 assume !(~n <= 0); 356507#L26 call #t~ret0 := fact(~n - 1);< 356515#$Ultimate##0 ~n := #in~n; 356516#L25 assume !(~n <= 0); 356507#L26 call #t~ret0 := fact(~n - 1);< 356515#$Ultimate##0 ~n := #in~n; 356529#L25 assume ~n <= 0;#res := 1; 356528#factFINAL assume true; 356527#factEXIT >#66#return; 356526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356524#factFINAL assume true; 356520#factEXIT >#66#return; 356518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356517#factFINAL assume true; 356514#factEXIT >#66#return; 356512#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356510#factFINAL assume true; 356505#factEXIT >#66#return; 356503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356501#factFINAL assume true; 356498#factEXIT >#74#return; 356496#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 356497#$Ultimate##0 ~n := #in~n; 356504#L25 assume ~n <= 0;#res := 1; 356502#factFINAL assume true; 356495#factEXIT >#76#return; 356387#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 356388#$Ultimate##0 ~n := #in~n; 356491#L25 assume !(~n <= 0); 356408#L26 call #t~ret0 := fact(~n - 1);< 356443#$Ultimate##0 ~n := #in~n; 356645#L25 assume !(~n <= 0); 356409#L26 call #t~ret0 := fact(~n - 1);< 356414#$Ultimate##0 ~n := #in~n; 356634#L25 assume !(~n <= 0); 356399#L26 call #t~ret0 := fact(~n - 1);< 356643#$Ultimate##0 ~n := #in~n; 356634#L25 assume !(~n <= 0); 356399#L26 call #t~ret0 := fact(~n - 1);< 356643#$Ultimate##0 ~n := #in~n; 356634#L25 assume !(~n <= 0); 356399#L26 call #t~ret0 := fact(~n - 1);< 356643#$Ultimate##0 ~n := #in~n; 356646#L25 assume ~n <= 0;#res := 1; 356644#factFINAL assume true; 356642#factEXIT >#66#return; 356641#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356639#factFINAL assume true; 356638#factEXIT >#66#return; 356637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356636#factFINAL assume true; 356470#factEXIT >#66#return; 356466#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356461#factFINAL assume true; 356458#factEXIT >#66#return; 356444#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356442#factFINAL assume true; 356438#factEXIT >#66#return; 356413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356652#factFINAL assume true; 356650#factEXIT >#78#return; 356381#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357132#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 357130#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357129#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 357128#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 357127#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 357096#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357083#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 357031#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357070#$Ultimate##0 ~n := #in~n; 357098#L25 assume !(~n <= 0); 357079#L26 call #t~ret0 := fact(~n - 1);< 357080#$Ultimate##0 ~n := #in~n; 357089#L25 assume ~n <= 0;#res := 1; 357081#factFINAL assume true; 357078#factEXIT >#66#return; 357076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357074#factFINAL assume true; 357069#factEXIT >#68#return; 357033#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 356336#$Ultimate##0 ~n := #in~n; 357068#L25 assume ~n <= 0;#res := 1; 357067#factFINAL assume true; 357029#factEXIT >#70#return; 357026#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357027#$Ultimate##0 ~n := #in~n; 357082#L25 assume !(~n <= 0); 357065#L26 call #t~ret0 := fact(~n - 1);< 357066#$Ultimate##0 ~n := #in~n; 357075#L25 assume ~n <= 0;#res := 1; 357073#factFINAL assume true; 357064#factEXIT >#66#return; 357062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357061#factFINAL assume true; 357025#factEXIT >#72#return; 357024#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357019#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 357015#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357007#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 356999#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356897#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 356996#$Ultimate##0 ~n := #in~n; 357063#L25 assume !(~n <= 0); 356783#L26 call #t~ret0 := fact(~n - 1);< 356796#$Ultimate##0 ~n := #in~n; 357018#L25 assume ~n <= 0;#res := 1; 357010#factFINAL assume true; 357002#factEXIT >#66#return; 356998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356995#factFINAL assume true; 356889#factEXIT >#68#return; 356935#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 356992#$Ultimate##0 ~n := #in~n; 357072#L25 assume !(~n <= 0); 356774#L26 call #t~ret0 := fact(~n - 1);< 357056#$Ultimate##0 ~n := #in~n; 357018#L25 assume ~n <= 0;#res := 1; 357010#factFINAL assume true; 357002#factEXIT >#66#return; 356998#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356995#factFINAL assume true; 356889#factEXIT >#70#return; 356873#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 356886#$Ultimate##0 ~n := #in~n; 356994#L25 assume ~n <= 0;#res := 1; 356888#factFINAL assume true; 356814#factEXIT >#72#return; 356811#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 356806#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 356804#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 356797#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 356771#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356718#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 356768#$Ultimate##0 ~n := #in~n; 357264#L25 assume !(~n <= 0); 356791#L26 call #t~ret0 := fact(~n - 1);< 356796#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356769#factFINAL assume true; 356726#factEXIT >#74#return; 356731#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357060#$Ultimate##0 ~n := #in~n; 357059#L25 assume !(~n <= 0); 356782#L26 call #t~ret0 := fact(~n - 1);< 357056#$Ultimate##0 ~n := #in~n; 357018#L25 assume ~n <= 0;#res := 1; 357010#factFINAL assume true; 357002#factEXIT >#66#return; 357006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357278#factFINAL assume true; 357170#factEXIT >#76#return; 357012#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357225#$Ultimate##0 ~n := #in~n; 357248#L25 assume !(~n <= 0); 357004#L26 call #t~ret0 := fact(~n - 1);< 357014#$Ultimate##0 ~n := #in~n; 357018#L25 assume ~n <= 0;#res := 1; 357010#factFINAL assume true; 357002#factEXIT >#66#return; 357006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357278#factFINAL assume true; 357170#factEXIT >#78#return; 357172#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357212#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 357208#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357207#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357205#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356710#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357091#$Ultimate##0 ~n := #in~n; 357450#L25 assume !(~n <= 0); 356788#L26 call #t~ret0 := fact(~n - 1);< 357139#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357210#factFINAL assume true; 357084#factEXIT >#74#return; 356753#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357060#$Ultimate##0 ~n := #in~n; 357059#L25 assume !(~n <= 0); 356782#L26 call #t~ret0 := fact(~n - 1);< 357056#$Ultimate##0 ~n := #in~n; 357018#L25 assume ~n <= 0;#res := 1; 357010#factFINAL assume true; 357002#factEXIT >#66#return; 357006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357278#factFINAL assume true; 357170#factEXIT >#76#return; 356751#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357058#$Ultimate##0 ~n := #in~n; 357057#L25 assume !(~n <= 0); 356773#L26 call #t~ret0 := fact(~n - 1);< 357023#$Ultimate##0 ~n := #in~n; 356813#L25 assume !(~n <= 0); 356808#L26 call #t~ret0 := fact(~n - 1);< 356810#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356769#factFINAL assume true; 356726#factEXIT >#78#return; 356766#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357256#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 357255#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357254#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357253#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356717#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357091#$Ultimate##0 ~n := #in~n; 357450#L25 assume !(~n <= 0); 356788#L26 call #t~ret0 := fact(~n - 1);< 357139#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357249#factFINAL assume true; 357244#factEXIT >#66#return; 357247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357166#factFINAL assume true; 357137#factEXIT >#74#return; 356754#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357060#$Ultimate##0 ~n := #in~n; 357059#L25 assume !(~n <= 0); 356782#L26 call #t~ret0 := fact(~n - 1);< 357056#$Ultimate##0 ~n := #in~n; 357018#L25 assume ~n <= 0;#res := 1; 357010#factFINAL assume true; 357002#factEXIT >#66#return; 357006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357278#factFINAL assume true; 357170#factEXIT >#76#return; 357086#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357167#$Ultimate##0 ~n := #in~n; 357228#L25 assume !(~n <= 0); 357009#L26 call #t~ret0 := fact(~n - 1);< 357020#$Ultimate##0 ~n := #in~n; 357016#L25 assume !(~n <= 0); 356786#L26 call #t~ret0 := fact(~n - 1);< 357000#$Ultimate##0 ~n := #in~n; 356997#L25 assume !(~n <= 0); 356784#L26 call #t~ret0 := fact(~n - 1);< 356993#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357210#factFINAL assume true; 357084#factEXIT >#78#return; 356721#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 356725#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 356724#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 356723#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 356352#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356353#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 356256#$Ultimate##0 ~n := #in~n; 358478#L25 assume !(~n <= 0); 357857#L26 call #t~ret0 := fact(~n - 1);< 358444#$Ultimate##0 ~n := #in~n; 358502#L25 assume !(~n <= 0); 357859#L26 call #t~ret0 := fact(~n - 1);< 358441#$Ultimate##0 ~n := #in~n; 358473#L25 assume !(~n <= 0); 357865#L26 call #t~ret0 := fact(~n - 1);< 358471#$Ultimate##0 ~n := #in~n; 358473#L25 assume !(~n <= 0); 357865#L26 call #t~ret0 := fact(~n - 1);< 358471#$Ultimate##0 ~n := #in~n; 358473#L25 assume !(~n <= 0); 357865#L26 call #t~ret0 := fact(~n - 1);< 358471#$Ultimate##0 ~n := #in~n; 358476#L25 assume ~n <= 0;#res := 1; 358482#factFINAL assume true; 358469#factEXIT >#66#return; 358468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358466#factFINAL assume true; 358461#factEXIT >#66#return; 358459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358457#factFINAL assume true; 358449#factEXIT >#66#return; 358446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358440#factFINAL assume true; 358434#factEXIT >#66#return; 358437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358447#factFINAL assume true; 358442#factEXIT >#66#return; 358439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358432#factFINAL assume true; 358427#factEXIT >#74#return; 358421#L30-6 [2023-02-17 09:42:20,224 INFO L750 eck$LassoCheckResult]: Loop: 358421#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 358423#$Ultimate##0 ~n := #in~n; 358422#L25 assume !(~n <= 0); 358415#L26 call #t~ret0 := fact(~n - 1);< 358418#$Ultimate##0 ~n := #in~n; 358419#L25 assume ~n <= 0;#res := 1; 358499#factFINAL assume true; 358498#factEXIT >#66#return; 358497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358496#factFINAL assume true; 358493#factEXIT >#76#return; 358425#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 358489#$Ultimate##0 ~n := #in~n; 358487#L25 assume !(~n <= 0); 358436#L26 call #t~ret0 := fact(~n - 1);< 358486#$Ultimate##0 ~n := #in~n; 358485#L25 assume !(~n <= 0); 358451#L26 call #t~ret0 := fact(~n - 1);< 358453#$Ultimate##0 ~n := #in~n; 358467#L25 assume !(~n <= 0); 358462#L26 call #t~ret0 := fact(~n - 1);< 358465#$Ultimate##0 ~n := #in~n; 358474#L25 assume !(~n <= 0); 358470#L26 call #t~ret0 := fact(~n - 1);< 358472#$Ultimate##0 ~n := #in~n; 358476#L25 assume ~n <= 0;#res := 1; 358482#factFINAL assume true; 358469#factEXIT >#66#return; 358468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358466#factFINAL assume true; 358461#factEXIT >#66#return; 358459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358457#factFINAL assume true; 358449#factEXIT >#66#return; 358446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358440#factFINAL assume true; 358434#factEXIT >#66#return; 358431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358429#factFINAL assume true; 358424#factEXIT >#78#return; 356299#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 356300#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 356345#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 356346#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 356314#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 356315#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 356332#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 356333#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356286#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 356287#$Ultimate##0 ~n := #in~n; 358527#L25 assume !(~n <= 0); 358522#L26 call #t~ret0 := fact(~n - 1);< 358526#$Ultimate##0 ~n := #in~n; 357090#L25 assume !(~n <= 0); 358523#L26 call #t~ret0 := fact(~n - 1);< 358529#$Ultimate##0 ~n := #in~n; 357090#L25 assume !(~n <= 0); 358523#L26 call #t~ret0 := fact(~n - 1);< 358529#$Ultimate##0 ~n := #in~n; 357090#L25 assume !(~n <= 0); 358523#L26 call #t~ret0 := fact(~n - 1);< 358529#$Ultimate##0 ~n := #in~n; 357090#L25 assume !(~n <= 0); 358523#L26 call #t~ret0 := fact(~n - 1);< 358529#$Ultimate##0 ~n := #in~n; 357090#L25 assume !(~n <= 0); 358523#L26 call #t~ret0 := fact(~n - 1);< 358529#$Ultimate##0 ~n := #in~n; 357090#L25 assume !(~n <= 0); 358523#L26 call #t~ret0 := fact(~n - 1);< 358529#$Ultimate##0 ~n := #in~n; 358530#L25 assume ~n <= 0;#res := 1; 358549#factFINAL assume true; 358548#factEXIT >#66#return; 358547#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358546#factFINAL assume true; 358544#factEXIT >#66#return; 358543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358542#factFINAL assume true; 358541#factEXIT >#66#return; 358540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358539#factFINAL assume true; 358537#factEXIT >#66#return; 358536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358535#factFINAL assume true; 358532#factEXIT >#66#return; 358534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358588#factFINAL assume true; 358587#factEXIT >#66#return; 358531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358528#factFINAL assume true; 358521#factEXIT >#66#return; 358524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358598#factFINAL assume true; 358597#factEXIT >#68#return; 357036#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357070#$Ultimate##0 ~n := #in~n; 357098#L25 assume ~n <= 0;#res := 1; 357067#factFINAL assume true; 357029#factEXIT >#70#return; 357047#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 358595#$Ultimate##0 ~n := #in~n; 358593#L25 assume !(~n <= 0); 356264#L26 call #t~ret0 := fact(~n - 1);< 358591#$Ultimate##0 ~n := #in~n; 358590#L25 assume !(~n <= 0); 356269#L26 call #t~ret0 := fact(~n - 1);< 358574#$Ultimate##0 ~n := #in~n; 358573#L25 assume !(~n <= 0); 356268#L26 call #t~ret0 := fact(~n - 1);< 358572#$Ultimate##0 ~n := #in~n; 358569#L25 assume !(~n <= 0); 356265#L26 call #t~ret0 := fact(~n - 1);< 358567#$Ultimate##0 ~n := #in~n; 358565#L25 assume !(~n <= 0); 356261#L26 call #t~ret0 := fact(~n - 1);< 358561#$Ultimate##0 ~n := #in~n; 358558#L25 assume !(~n <= 0); 356271#L26 call #t~ret0 := fact(~n - 1);< 358556#$Ultimate##0 ~n := #in~n; 358553#L25 assume !(~n <= 0); 356260#L26 call #t~ret0 := fact(~n - 1);< 358552#$Ultimate##0 ~n := #in~n; 356328#L25 assume ~n <= 0;#res := 1; 356330#factFINAL assume true; 358646#factEXIT >#66#return; 358645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358643#factFINAL assume true; 358641#factEXIT >#66#return; 358642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358675#factFINAL assume true; 358674#factEXIT >#66#return; 358673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358672#factFINAL assume true; 358669#factEXIT >#66#return; 358662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358658#factFINAL assume true; 358657#factEXIT >#66#return; 358656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358654#factFINAL assume true; 358651#factEXIT >#66#return; 358652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358667#factFINAL assume true; 358666#factEXIT >#66#return; 358665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358661#factFINAL assume true; 358627#factEXIT >#72#return; 356355#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357356#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 357351#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357342#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357341#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 357195#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357199#$Ultimate##0 ~n := #in~n; 357204#L25 assume !(~n <= 0); 356775#L26 call #t~ret0 := fact(~n - 1);< 357139#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357249#factFINAL assume true; 357244#factEXIT >#66#return; 357245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357138#factFINAL assume true; 357108#factEXIT >#66#return; 357123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357157#factFINAL assume true; 357149#factEXIT >#66#return; 357154#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357304#factFINAL assume true; 357293#factEXIT >#66#return; 357298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357711#factFINAL assume true; 357251#factEXIT >#68#return; 356903#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 356996#$Ultimate##0 ~n := #in~n; 357063#L25 assume !(~n <= 0); 356783#L26 call #t~ret0 := fact(~n - 1);< 356796#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357249#factFINAL assume true; 357244#factEXIT >#66#return; 357245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357138#factFINAL assume true; 357108#factEXIT >#66#return; 357123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357157#factFINAL assume true; 357149#factEXIT >#66#return; 357152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357259#factFINAL assume true; 357252#factEXIT >#70#return; 356831#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357184#$Ultimate##0 ~n := #in~n; 357237#L25 assume ~n <= 0;#res := 1; 356888#factFINAL assume true; 356814#factEXIT >#72#return; 356876#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357339#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 357338#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357336#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 357187#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357199#$Ultimate##0 ~n := #in~n; 357204#L25 assume !(~n <= 0); 356775#L26 call #t~ret0 := fact(~n - 1);< 357139#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357249#factFINAL assume true; 357244#factEXIT >#66#return; 357245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357138#factFINAL assume true; 357108#factEXIT >#66#return; 357123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357157#factFINAL assume true; 357149#factEXIT >#66#return; 357154#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357304#factFINAL assume true; 357293#factEXIT >#66#return; 357299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357567#factFINAL assume true; 357562#factEXIT >#66#return; 357518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357517#factFINAL assume true; 357516#factEXIT >#68#return; 356962#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 356996#$Ultimate##0 ~n := #in~n; 357063#L25 assume !(~n <= 0); 356783#L26 call #t~ret0 := fact(~n - 1);< 356796#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357249#factFINAL assume true; 357244#factEXIT >#66#return; 357245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357138#factFINAL assume true; 357108#factEXIT >#66#return; 357123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357157#factFINAL assume true; 357149#factEXIT >#66#return; 357152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357259#factFINAL assume true; 357252#factEXIT >#70#return; 356818#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357184#$Ultimate##0 ~n := #in~n; 357237#L25 assume ~n <= 0;#res := 1; 356888#factFINAL assume true; 356814#factEXIT >#72#return; 356875#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357329#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 357327#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357325#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357283#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356707#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357091#$Ultimate##0 ~n := #in~n; 357450#L25 assume !(~n <= 0); 356788#L26 call #t~ret0 := fact(~n - 1);< 357139#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357210#factFINAL assume true; 357084#factEXIT >#74#return; 356750#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357060#$Ultimate##0 ~n := #in~n; 357059#L25 assume !(~n <= 0); 356782#L26 call #t~ret0 := fact(~n - 1);< 357056#$Ultimate##0 ~n := #in~n; 357054#L25 assume !(~n <= 0); 356779#L26 call #t~ret0 := fact(~n - 1);< 357022#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356769#factFINAL assume true; 356726#factEXIT >#76#return; 356755#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357058#$Ultimate##0 ~n := #in~n; 357057#L25 assume !(~n <= 0); 356773#L26 call #t~ret0 := fact(~n - 1);< 357023#$Ultimate##0 ~n := #in~n; 357018#L25 assume ~n <= 0;#res := 1; 357010#factFINAL assume true; 357002#factEXIT >#66#return; 357006#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357278#factFINAL assume true; 357170#factEXIT >#78#return; 357173#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357270#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 357269#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357266#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357265#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356678#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357091#$Ultimate##0 ~n := #in~n; 357450#L25 assume !(~n <= 0); 356788#L26 call #t~ret0 := fact(~n - 1);< 357139#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357249#factFINAL assume true; 357244#factEXIT >#66#return; 357247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357166#factFINAL assume true; 357137#factEXIT >#74#return; 356734#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357060#$Ultimate##0 ~n := #in~n; 357059#L25 assume !(~n <= 0); 356782#L26 call #t~ret0 := fact(~n - 1);< 357056#$Ultimate##0 ~n := #in~n; 357054#L25 assume !(~n <= 0); 356779#L26 call #t~ret0 := fact(~n - 1);< 357022#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356769#factFINAL assume true; 356726#factEXIT >#76#return; 356735#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357058#$Ultimate##0 ~n := #in~n; 357057#L25 assume !(~n <= 0); 356773#L26 call #t~ret0 := fact(~n - 1);< 357023#$Ultimate##0 ~n := #in~n; 356813#L25 assume !(~n <= 0); 356808#L26 call #t~ret0 := fact(~n - 1);< 356810#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356769#factFINAL assume true; 356726#factEXIT >#78#return; 356764#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357133#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 357131#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357102#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357092#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356696#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 357091#$Ultimate##0 ~n := #in~n; 357450#L25 assume !(~n <= 0); 356788#L26 call #t~ret0 := fact(~n - 1);< 357139#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 357263#L25 assume !(~n <= 0); 356780#L26 call #t~ret0 := fact(~n - 1);< 356809#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357229#factFINAL assume true; 357220#factEXIT >#66#return; 357223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357249#factFINAL assume true; 357244#factEXIT >#66#return; 357247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 357166#factFINAL assume true; 357137#factEXIT >#74#return; 356740#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 357060#$Ultimate##0 ~n := #in~n; 357059#L25 assume !(~n <= 0); 356782#L26 call #t~ret0 := fact(~n - 1);< 357056#$Ultimate##0 ~n := #in~n; 357054#L25 assume !(~n <= 0); 356779#L26 call #t~ret0 := fact(~n - 1);< 357022#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356769#factFINAL assume true; 356726#factEXIT >#76#return; 356739#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 357058#$Ultimate##0 ~n := #in~n; 357057#L25 assume !(~n <= 0); 356773#L26 call #t~ret0 := fact(~n - 1);< 357023#$Ultimate##0 ~n := #in~n; 356813#L25 assume !(~n <= 0); 356808#L26 call #t~ret0 := fact(~n - 1);< 356810#$Ultimate##0 ~n := #in~n; 356887#L25 assume ~n <= 0;#res := 1; 356812#factFINAL assume true; 356807#factEXIT >#66#return; 356805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356798#factFINAL assume true; 356772#factEXIT >#66#return; 356770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 356769#factFINAL assume true; 356726#factEXIT >#78#return; 356762#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 357097#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 357095#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 357094#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 357093#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 356365#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 358428#$Ultimate##0 ~n := #in~n; 358477#L25 assume !(~n <= 0); 357867#L26 call #t~ret0 := fact(~n - 1);< 358475#$Ultimate##0 ~n := #in~n; 358473#L25 assume !(~n <= 0); 357865#L26 call #t~ret0 := fact(~n - 1);< 358471#$Ultimate##0 ~n := #in~n; 358473#L25 assume !(~n <= 0); 357865#L26 call #t~ret0 := fact(~n - 1);< 358471#$Ultimate##0 ~n := #in~n; 358473#L25 assume !(~n <= 0); 357865#L26 call #t~ret0 := fact(~n - 1);< 358471#$Ultimate##0 ~n := #in~n; 358476#L25 assume ~n <= 0;#res := 1; 358482#factFINAL assume true; 358469#factEXIT >#66#return; 358468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358466#factFINAL assume true; 358461#factEXIT >#66#return; 358459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358457#factFINAL assume true; 358449#factEXIT >#66#return; 358446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358440#factFINAL assume true; 358434#factEXIT >#66#return; 358431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 358429#factFINAL assume true; 358424#factEXIT >#74#return; 358421#L30-6 [2023-02-17 09:42:20,225 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:20,225 INFO L85 PathProgramCache]: Analyzing trace with hash 1333905345, now seen corresponding path program 28 times [2023-02-17 09:42:20,225 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:20,225 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [912147512] [2023-02-17 09:42:20,226 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:20,226 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:20,242 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:20,242 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2061656392] [2023-02-17 09:42:20,242 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:20,242 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:20,243 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:20,246 INFO L229 MonitoredProcess]: Starting monitored process 205 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:20,247 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (205)] Waiting until timeout for monitored process [2023-02-17 09:42:20,821 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:20,821 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:20,825 INFO L263 TraceCheckSpWp]: Trace formula consists of 1129 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:42:20,829 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:20,885 INFO L134 CoverageAnalysis]: Checked inductivity of 14874 backedges. 8140 proven. 59 refuted. 0 times theorem prover too weak. 6675 trivial. 0 not checked. [2023-02-17 09:42:20,885 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:21,031 INFO L134 CoverageAnalysis]: Checked inductivity of 14874 backedges. 814 proven. 990 refuted. 0 times theorem prover too weak. 13070 trivial. 0 not checked. [2023-02-17 09:42:21,032 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:21,032 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [912147512] [2023-02-17 09:42:21,032 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:21,032 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2061656392] [2023-02-17 09:42:21,032 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2061656392] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:21,032 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:21,032 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 19] total 26 [2023-02-17 09:42:21,032 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2014269694] [2023-02-17 09:42:21,033 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:21,033 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:21,033 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:21,033 INFO L85 PathProgramCache]: Analyzing trace with hash -977655897, now seen corresponding path program 22 times [2023-02-17 09:42:21,033 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:21,033 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [628257525] [2023-02-17 09:42:21,034 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:21,034 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:21,051 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:21,051 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1844670600] [2023-02-17 09:42:21,052 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:21,052 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:21,052 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:21,056 INFO L229 MonitoredProcess]: Starting monitored process 206 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:21,074 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (206)] Waiting until timeout for monitored process [2023-02-17 09:42:21,667 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:21,667 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:21,671 INFO L263 TraceCheckSpWp]: Trace formula consists of 1229 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-17 09:42:21,674 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:21,695 INFO L134 CoverageAnalysis]: Checked inductivity of 22339 backedges. 11371 proven. 23 refuted. 0 times theorem prover too weak. 10945 trivial. 0 not checked. [2023-02-17 09:42:21,695 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:21,734 INFO L134 CoverageAnalysis]: Checked inductivity of 22339 backedges. 387 proven. 508 refuted. 0 times theorem prover too weak. 21444 trivial. 0 not checked. [2023-02-17 09:42:21,734 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:21,735 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [628257525] [2023-02-17 09:42:21,735 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:21,735 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1844670600] [2023-02-17 09:42:21,735 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1844670600] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:21,735 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:21,735 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 10 [2023-02-17 09:42:21,735 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1770841204] [2023-02-17 09:42:21,735 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:21,736 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:21,736 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:21,736 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2023-02-17 09:42:21,736 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=120, Invalid=530, Unknown=0, NotChecked=0, Total=650 [2023-02-17 09:42:21,736 INFO L87 Difference]: Start difference. First operand 2441 states and 5285 transitions. cyclomatic complexity: 2869 Second operand has 26 states, 24 states have (on average 3.9166666666666665) internal successors, (94), 26 states have internal predecessors, (94), 18 states have call successors, (50), 2 states have call predecessors, (50), 7 states have return successors, (53), 17 states have call predecessors, (53), 18 states have call successors, (53) [2023-02-17 09:42:22,943 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:22,943 INFO L93 Difference]: Finished difference Result 2895 states and 6884 transitions. [2023-02-17 09:42:22,943 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2895 states and 6884 transitions. [2023-02-17 09:42:22,963 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 979 [2023-02-17 09:42:22,988 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2895 states to 2881 states and 6848 transitions. [2023-02-17 09:42:22,988 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 387 [2023-02-17 09:42:22,989 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 387 [2023-02-17 09:42:22,989 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2881 states and 6848 transitions. [2023-02-17 09:42:22,989 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:22,989 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2881 states and 6848 transitions. [2023-02-17 09:42:22,990 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2881 states and 6848 transitions. [2023-02-17 09:42:23,056 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2881 to 2530. [2023-02-17 09:42:23,058 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2530 states, 1419 states have (on average 1.0486257928118394) internal successors, (1488), 1405 states have internal predecessors, (1488), 816 states have call successors, (876), 305 states have call predecessors, (876), 295 states have return successors, (3201), 819 states have call predecessors, (3201), 816 states have call successors, (3201) [2023-02-17 09:42:23,068 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2530 states to 2530 states and 5565 transitions. [2023-02-17 09:42:23,068 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2530 states and 5565 transitions. [2023-02-17 09:42:23,068 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 40 states. [2023-02-17 09:42:23,069 INFO L428 stractBuchiCegarLoop]: Abstraction has 2530 states and 5565 transitions. [2023-02-17 09:42:23,069 INFO L335 stractBuchiCegarLoop]: ======== Iteration 52 ============ [2023-02-17 09:42:23,069 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2530 states and 5565 transitions. [2023-02-17 09:42:23,075 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 697 [2023-02-17 09:42:23,075 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:23,075 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:23,077 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [93, 93, 59, 59, 59, 59, 34, 12, 11, 9, 9, 9, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:23,077 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [83, 83, 62, 62, 62, 62, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:23,078 INFO L748 eck$LassoCheckResult]: Stem: 368245#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 368194#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 368195#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 368213#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 368205#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 368206#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369836#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 368188#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 368189#$Ultimate##0 ~n := #in~n; 369832#L25 assume ~n <= 0;#res := 1; 369831#factFINAL assume true; 369830#factEXIT >#68#return; 368233#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368234#$Ultimate##0 ~n := #in~n; 369855#L25 assume ~n <= 0;#res := 1; 369854#factFINAL assume true; 369853#factEXIT >#70#return; 368184#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 368185#$Ultimate##0 ~n := #in~n; 369919#L25 assume ~n <= 0;#res := 1; 369918#factFINAL assume true; 369915#factEXIT >#72#return; 369914#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369909#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 369906#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369902#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369901#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369846#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369847#$Ultimate##0 ~n := #in~n; 369897#L25 assume !(~n <= 0); 369874#L26 call #t~ret0 := fact(~n - 1);< 369884#$Ultimate##0 ~n := #in~n; 369881#L25 assume ~n <= 0;#res := 1; 369873#factFINAL assume true; 369876#factEXIT >#66#return; 369912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369911#factFINAL assume true; 369908#factEXIT >#74#return; 369904#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369905#$Ultimate##0 ~n := #in~n; 369910#L25 assume ~n <= 0;#res := 1; 369907#factFINAL assume true; 369903#factEXIT >#76#return; 369892#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369899#$Ultimate##0 ~n := #in~n; 369898#L25 assume !(~n <= 0); 369875#L26 call #t~ret0 := fact(~n - 1);< 369884#$Ultimate##0 ~n := #in~n; 369881#L25 assume ~n <= 0;#res := 1; 369873#factFINAL assume true; 369876#factEXIT >#66#return; 369913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369932#factFINAL assume true; 369926#factEXIT >#78#return; 369927#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369922#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369920#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369921#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369848#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369843#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369872#$Ultimate##0 ~n := #in~n; 369871#L25 assume !(~n <= 0); 369867#L26 call #t~ret0 := fact(~n - 1);< 369870#$Ultimate##0 ~n := #in~n; 369895#L25 assume !(~n <= 0); 369868#L26 call #t~ret0 := fact(~n - 1);< 369890#$Ultimate##0 ~n := #in~n; 369900#L25 assume ~n <= 0;#res := 1; 369894#factFINAL assume true; 369887#factEXIT >#66#return; 369889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369893#factFINAL assume true; 369885#factEXIT >#66#return; 369865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369864#factFINAL assume true; 369842#factEXIT >#74#return; 369845#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369930#$Ultimate##0 ~n := #in~n; 369937#L25 assume ~n <= 0;#res := 1; 369936#factFINAL assume true; 369929#factEXIT >#76#return; 369878#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369928#$Ultimate##0 ~n := #in~n; 369880#L25 assume !(~n <= 0); 369877#L26 call #t~ret0 := fact(~n - 1);< 369879#$Ultimate##0 ~n := #in~n; 369896#L25 assume !(~n <= 0); 369888#L26 call #t~ret0 := fact(~n - 1);< 369891#$Ultimate##0 ~n := #in~n; 369900#L25 assume ~n <= 0;#res := 1; 369894#factFINAL assume true; 369887#factEXIT >#66#return; 369889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369893#factFINAL assume true; 369885#factEXIT >#66#return; 369886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369931#factFINAL assume true; 369925#factEXIT >#78#return; 369923#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369924#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369935#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369916#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369917#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369844#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369872#$Ultimate##0 ~n := #in~n; 369871#L25 assume !(~n <= 0); 369867#L26 call #t~ret0 := fact(~n - 1);< 369870#$Ultimate##0 ~n := #in~n; 369895#L25 assume !(~n <= 0); 369868#L26 call #t~ret0 := fact(~n - 1);< 369890#$Ultimate##0 ~n := #in~n; 369895#L25 assume !(~n <= 0); 369868#L26 call #t~ret0 := fact(~n - 1);< 369890#$Ultimate##0 ~n := #in~n; 369900#L25 assume ~n <= 0;#res := 1; 369894#factFINAL assume true; 369887#factEXIT >#66#return; 369889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369893#factFINAL assume true; 369885#factEXIT >#66#return; 369882#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369883#factFINAL assume true; 369866#factEXIT >#66#return; 369869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369934#factFINAL assume true; 369933#factEXIT >#74#return; 369840#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369841#$Ultimate##0 ~n := #in~n; 369940#L25 assume ~n <= 0;#res := 1; 369938#factFINAL assume true; 369839#factEXIT >#76#return; 368248#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 368249#$Ultimate##0 ~n := #in~n; 369981#L25 assume !(~n <= 0); 369966#L26 call #t~ret0 := fact(~n - 1);< 369978#$Ultimate##0 ~n := #in~n; 369989#L25 assume !(~n <= 0); 369967#L26 call #t~ret0 := fact(~n - 1);< 369970#$Ultimate##0 ~n := #in~n; 369990#L25 assume !(~n <= 0); 369964#L26 call #t~ret0 := fact(~n - 1);< 369987#$Ultimate##0 ~n := #in~n; 369992#L25 assume ~n <= 0;#res := 1; 369991#factFINAL assume true; 369986#factEXIT >#66#return; 369984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369983#factFINAL assume true; 369982#factEXIT >#66#return; 369980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369979#factFINAL assume true; 369977#factEXIT >#66#return; 369946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369943#factFINAL assume true; 369942#factEXIT >#78#return; 368198#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 368199#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 368215#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369961#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369959#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369956#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369957#$Ultimate##0 ~n := #in~n; 369975#L25 assume !(~n <= 0); 369965#L26 call #t~ret0 := fact(~n - 1);< 369970#$Ultimate##0 ~n := #in~n; 369990#L25 assume !(~n <= 0); 369964#L26 call #t~ret0 := fact(~n - 1);< 369987#$Ultimate##0 ~n := #in~n; 369990#L25 assume !(~n <= 0); 369964#L26 call #t~ret0 := fact(~n - 1);< 369987#$Ultimate##0 ~n := #in~n; 369990#L25 assume !(~n <= 0); 369964#L26 call #t~ret0 := fact(~n - 1);< 369987#$Ultimate##0 ~n := #in~n; 369992#L25 assume ~n <= 0;#res := 1; 369991#factFINAL assume true; 369986#factEXIT >#66#return; 369984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369983#factFINAL assume true; 369982#factEXIT >#66#return; 369980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369979#factFINAL assume true; 369977#factEXIT >#66#return; 369976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369971#factFINAL assume true; 369962#factEXIT >#66#return; 369960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369958#factFINAL assume true; 369955#factEXIT >#74#return; 369948#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369953#$Ultimate##0 ~n := #in~n; 370441#L25 assume ~n <= 0;#res := 1; 370440#factFINAL assume true; 370438#factEXIT >#76#return; 370404#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 370415#$Ultimate##0 ~n := #in~n; 370414#L25 assume !(~n <= 0); 370262#L26 call #t~ret0 := fact(~n - 1);< 370413#$Ultimate##0 ~n := #in~n; 370478#L25 assume !(~n <= 0); 370256#L26 call #t~ret0 := fact(~n - 1);< 370269#$Ultimate##0 ~n := #in~n; 370473#L25 assume !(~n <= 0); 370260#L26 call #t~ret0 := fact(~n - 1);< 370472#$Ultimate##0 ~n := #in~n; 370475#L25 assume ~n <= 0;#res := 1; 370474#factFINAL assume true; 370471#factEXIT >#66#return; 370470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370469#factFINAL assume true; 370437#factEXIT >#66#return; 370433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370432#factFINAL assume true; 370421#factEXIT >#66#return; 370410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370489#factFINAL assume true; 370490#factEXIT >#78#return; 368531#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 368529#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 368527#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 368525#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 368407#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 368358#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 368359#$Ultimate##0 ~n := #in~n; 368484#L25 assume !(~n <= 0); 368476#L26 call #t~ret0 := fact(~n - 1);< 368478#$Ultimate##0 ~n := #in~n; 368490#L25 assume !(~n <= 0); 368477#L26 call #t~ret0 := fact(~n - 1);< 368489#$Ultimate##0 ~n := #in~n; 368490#L25 assume !(~n <= 0); 368477#L26 call #t~ret0 := fact(~n - 1);< 368489#$Ultimate##0 ~n := #in~n; 368490#L25 assume !(~n <= 0); 368477#L26 call #t~ret0 := fact(~n - 1);< 368489#$Ultimate##0 ~n := #in~n; 368490#L25 assume !(~n <= 0); 368477#L26 call #t~ret0 := fact(~n - 1);< 368489#$Ultimate##0 ~n := #in~n; 368490#L25 assume !(~n <= 0); 368477#L26 call #t~ret0 := fact(~n - 1);< 368489#$Ultimate##0 ~n := #in~n; 368510#L25 assume ~n <= 0;#res := 1; 368509#factFINAL assume true; 368508#factEXIT >#66#return; 368507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368506#factFINAL assume true; 368505#factEXIT >#66#return; 368504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368503#factFINAL assume true; 368502#factEXIT >#66#return; 368498#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368497#factFINAL assume true; 368496#factEXIT >#66#return; 368494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368492#factFINAL assume true; 368488#factEXIT >#66#return; 368483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368482#factFINAL assume true; 368475#factEXIT >#66#return; 368365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368362#factFINAL assume true; 368357#factEXIT >#74#return; 368355#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368356#$Ultimate##0 ~n := #in~n; 368369#L25 assume ~n <= 0;#res := 1; 368367#factFINAL assume true; 368354#factEXIT >#76#return; 368292#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 368352#$Ultimate##0 ~n := #in~n; 368348#L25 assume !(~n <= 0); 368313#L26 call #t~ret0 := fact(~n - 1);< 368331#$Ultimate##0 ~n := #in~n; 368406#L25 assume !(~n <= 0); 368316#L26 call #t~ret0 := fact(~n - 1);< 368337#$Ultimate##0 ~n := #in~n; 368501#L25 assume !(~n <= 0); 368309#L26 call #t~ret0 := fact(~n - 1);< 368346#$Ultimate##0 ~n := #in~n; 368495#L25 assume !(~n <= 0); 368310#L26 call #t~ret0 := fact(~n - 1);< 368364#$Ultimate##0 ~n := #in~n; 368391#L25 assume !(~n <= 0); 368306#L26 call #t~ret0 := fact(~n - 1);< 368321#$Ultimate##0 ~n := #in~n; 368382#L25 assume !(~n <= 0); 368304#L26 call #t~ret0 := fact(~n - 1);< 368380#$Ultimate##0 ~n := #in~n; 368382#L25 assume !(~n <= 0); 368304#L26 call #t~ret0 := fact(~n - 1);< 368380#$Ultimate##0 ~n := #in~n; 368390#L25 assume ~n <= 0;#res := 1; 368385#factFINAL assume true; 368379#factEXIT >#66#return; 368376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368371#factFINAL assume true; 368370#factEXIT >#66#return; 368368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368366#factFINAL assume true; 368363#factEXIT >#66#return; 368361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368360#factFINAL assume true; 368345#factEXIT >#66#return; 368343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368340#factFINAL assume true; 368336#factEXIT >#66#return; 368333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368332#factFINAL assume true; 368329#factEXIT >#66#return; 368328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368327#factFINAL assume true; 368326#factEXIT >#66#return; 368320#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368555#factFINAL assume true; 368552#factEXIT >#78#return; 368290#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369278#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369277#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369271#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 369260#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 369227#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 369151#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369126#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369044#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369061#$Ultimate##0 ~n := #in~n; 369123#L25 assume !(~n <= 0); 369116#L26 call #t~ret0 := fact(~n - 1);< 369117#$Ultimate##0 ~n := #in~n; 369144#L25 assume ~n <= 0;#res := 1; 369143#factFINAL assume true; 369115#factEXIT >#66#return; 369109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369108#factFINAL assume true; 369060#factEXIT >#68#return; 369042#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368232#$Ultimate##0 ~n := #in~n; 369082#L25 assume ~n <= 0;#res := 1; 369080#factFINAL assume true; 369041#factEXIT >#70#return; 369038#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369039#$Ultimate##0 ~n := #in~n; 369137#L25 assume !(~n <= 0); 369075#L26 call #t~ret0 := fact(~n - 1);< 369076#$Ultimate##0 ~n := #in~n; 369134#L25 assume ~n <= 0;#res := 1; 369132#factFINAL assume true; 369074#factEXIT >#66#return; 369071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369070#factFINAL assume true; 369037#factEXIT >#72#return; 369017#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369014#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 369012#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369010#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 368944#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369009#$Ultimate##0 ~n := #in~n; 369341#L25 assume !(~n <= 0); 368787#L26 call #t~ret0 := fact(~n - 1);< 368809#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369008#factFINAL assume true; 368902#factEXIT >#68#return; 368951#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369005#$Ultimate##0 ~n := #in~n; 369159#L25 assume !(~n <= 0); 368802#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369008#factFINAL assume true; 368902#factEXIT >#70#return; 368829#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 368899#$Ultimate##0 ~n := #in~n; 369007#L25 assume ~n <= 0;#res := 1; 368901#factFINAL assume true; 368827#factEXIT >#72#return; 368824#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 368819#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 368817#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 368810#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 368784#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 368688#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 368780#$Ultimate##0 ~n := #in~n; 369327#L25 assume !(~n <= 0); 368801#L26 call #t~ret0 := fact(~n - 1);< 368809#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368781#factFINAL assume true; 368676#factEXIT >#74#return; 368694#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368782#$Ultimate##0 ~n := #in~n; 369138#L25 assume !(~n <= 0); 368803#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369224#factFINAL assume true; 369216#factEXIT >#76#return; 369217#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369279#$Ultimate##0 ~n := #in~n; 369272#L25 assume !(~n <= 0); 369066#L26 call #t~ret0 := fact(~n - 1);< 369073#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369224#factFINAL assume true; 369216#factEXIT >#78#return; 369222#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369307#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369305#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369303#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369298#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369089#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369114#$Ultimate##0 ~n := #in~n; 369290#L25 assume !(~n <= 0); 368797#L26 call #t~ret0 := fact(~n - 1);< 369207#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369146#factFINAL assume true; 369083#factEXIT >#74#return; 368703#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368782#$Ultimate##0 ~n := #in~n; 369138#L25 assume !(~n <= 0); 368803#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369224#factFINAL assume true; 369216#factEXIT >#76#return; 368701#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369228#$Ultimate##0 ~n := #in~n; 369153#L25 assume !(~n <= 0); 368799#L26 call #t~ret0 := fact(~n - 1);< 369129#$Ultimate##0 ~n := #in~n; 368826#L25 assume !(~n <= 0); 368821#L26 call #t~ret0 := fact(~n - 1);< 368823#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368781#factFINAL assume true; 368676#factEXIT >#78#return; 368769#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369261#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369225#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369223#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369093#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369114#$Ultimate##0 ~n := #in~n; 369290#L25 assume !(~n <= 0); 368797#L26 call #t~ret0 := fact(~n - 1);< 369207#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369259#factFINAL assume true; 369230#factEXIT >#66#return; 369233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369110#factFINAL assume true; 369113#factEXIT >#74#return; 368719#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368782#$Ultimate##0 ~n := #in~n; 369138#L25 assume !(~n <= 0); 368803#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369224#factFINAL assume true; 369216#factEXIT >#76#return; 369094#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369147#$Ultimate##0 ~n := #in~n; 369242#L25 assume !(~n <= 0); 369019#L26 call #t~ret0 := fact(~n - 1);< 369063#$Ultimate##0 ~n := #in~n; 369022#L25 assume !(~n <= 0); 368791#L26 call #t~ret0 := fact(~n - 1);< 369016#$Ultimate##0 ~n := #in~n; 369013#L25 assume !(~n <= 0); 368788#L26 call #t~ret0 := fact(~n - 1);< 369006#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369146#factFINAL assume true; 369083#factEXIT >#78#return; 369106#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369208#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369184#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369183#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369182#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 368273#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 368156#$Ultimate##0 ~n := #in~n; 368654#L25 assume !(~n <= 0); 368566#L26 call #t~ret0 := fact(~n - 1);< 368651#$Ultimate##0 ~n := #in~n; 368649#L25 assume !(~n <= 0); 368569#L26 call #t~ret0 := fact(~n - 1);< 368628#$Ultimate##0 ~n := #in~n; 368645#L25 assume !(~n <= 0); 368567#L26 call #t~ret0 := fact(~n - 1);< 368640#$Ultimate##0 ~n := #in~n; 368645#L25 assume !(~n <= 0); 368567#L26 call #t~ret0 := fact(~n - 1);< 368640#$Ultimate##0 ~n := #in~n; 368645#L25 assume !(~n <= 0); 368567#L26 call #t~ret0 := fact(~n - 1);< 368640#$Ultimate##0 ~n := #in~n; 368644#L25 assume ~n <= 0;#res := 1; 368643#factFINAL assume true; 368637#factEXIT >#66#return; 368634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368631#factFINAL assume true; 368625#factEXIT >#66#return; 368623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368621#factFINAL assume true; 368614#factEXIT >#66#return; 368611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368609#factFINAL assume true; 368600#factEXIT >#66#return; 368603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368612#factFINAL assume true; 368605#factEXIT >#66#return; 368599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368595#factFINAL assume true; 368591#factEXIT >#74#return; 368584#L30-6 [2023-02-17 09:42:23,078 INFO L750 eck$LassoCheckResult]: Loop: 368584#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368587#$Ultimate##0 ~n := #in~n; 368586#L25 assume !(~n <= 0); 368579#L26 call #t~ret0 := fact(~n - 1);< 368582#$Ultimate##0 ~n := #in~n; 368583#L25 assume ~n <= 0;#res := 1; 369127#factFINAL assume true; 369062#factEXIT >#66#return; 369059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369040#factFINAL assume true; 369020#factEXIT >#76#return; 368590#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 368653#$Ultimate##0 ~n := #in~n; 368652#L25 assume !(~n <= 0); 368601#L26 call #t~ret0 := fact(~n - 1);< 368641#$Ultimate##0 ~n := #in~n; 368635#L25 assume !(~n <= 0); 368616#L26 call #t~ret0 := fact(~n - 1);< 368619#$Ultimate##0 ~n := #in~n; 368633#L25 assume !(~n <= 0); 368626#L26 call #t~ret0 := fact(~n - 1);< 368630#$Ultimate##0 ~n := #in~n; 368648#L25 assume !(~n <= 0); 368638#L26 call #t~ret0 := fact(~n - 1);< 368639#$Ultimate##0 ~n := #in~n; 368644#L25 assume ~n <= 0;#res := 1; 368643#factFINAL assume true; 368637#factEXIT >#66#return; 368634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368631#factFINAL assume true; 368625#factEXIT >#66#return; 368623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368621#factFINAL assume true; 368614#factEXIT >#66#return; 368611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368609#factFINAL assume true; 368600#factEXIT >#66#return; 368598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368593#factFINAL assume true; 368588#factEXIT >#78#return; 368196#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 368197#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 368214#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 368244#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 368211#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 368212#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 368226#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 368227#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 368186#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 368187#$Ultimate##0 ~n := #in~n; 370511#L25 assume !(~n <= 0); 370508#L26 call #t~ret0 := fact(~n - 1);< 370510#$Ultimate##0 ~n := #in~n; 369145#L25 assume !(~n <= 0); 370507#L26 call #t~ret0 := fact(~n - 1);< 370513#$Ultimate##0 ~n := #in~n; 369145#L25 assume !(~n <= 0); 370507#L26 call #t~ret0 := fact(~n - 1);< 370513#$Ultimate##0 ~n := #in~n; 369145#L25 assume !(~n <= 0); 370507#L26 call #t~ret0 := fact(~n - 1);< 370513#$Ultimate##0 ~n := #in~n; 369145#L25 assume !(~n <= 0); 370507#L26 call #t~ret0 := fact(~n - 1);< 370513#$Ultimate##0 ~n := #in~n; 369145#L25 assume !(~n <= 0); 370507#L26 call #t~ret0 := fact(~n - 1);< 370513#$Ultimate##0 ~n := #in~n; 370514#L25 assume ~n <= 0;#res := 1; 370533#factFINAL assume true; 370532#factEXIT >#66#return; 370531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370530#factFINAL assume true; 370528#factEXIT >#66#return; 370527#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370526#factFINAL assume true; 370525#factEXIT >#66#return; 370524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370523#factFINAL assume true; 370521#factEXIT >#66#return; 370520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370519#factFINAL assume true; 370516#factEXIT >#66#return; 370518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370670#factFINAL assume true; 370667#factEXIT >#66#return; 370666#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370665#factFINAL assume true; 370627#factEXIT >#68#return; 369045#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369061#$Ultimate##0 ~n := #in~n; 369123#L25 assume ~n <= 0;#res := 1; 369080#factFINAL assume true; 369041#factEXIT >#70#return; 369055#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 370578#$Ultimate##0 ~n := #in~n; 370576#L25 assume !(~n <= 0); 368166#L26 call #t~ret0 := fact(~n - 1);< 370573#$Ultimate##0 ~n := #in~n; 370570#L25 assume !(~n <= 0); 368168#L26 call #t~ret0 := fact(~n - 1);< 370557#$Ultimate##0 ~n := #in~n; 370555#L25 assume !(~n <= 0); 368165#L26 call #t~ret0 := fact(~n - 1);< 370553#$Ultimate##0 ~n := #in~n; 370552#L25 assume !(~n <= 0); 368170#L26 call #t~ret0 := fact(~n - 1);< 370547#$Ultimate##0 ~n := #in~n; 370545#L25 assume !(~n <= 0); 368160#L26 call #t~ret0 := fact(~n - 1);< 370543#$Ultimate##0 ~n := #in~n; 370540#L25 assume !(~n <= 0); 368171#L26 call #t~ret0 := fact(~n - 1);< 370539#$Ultimate##0 ~n := #in~n; 370540#L25 assume !(~n <= 0); 368171#L26 call #t~ret0 := fact(~n - 1);< 370539#$Ultimate##0 ~n := #in~n; 370540#L25 assume !(~n <= 0); 368171#L26 call #t~ret0 := fact(~n - 1);< 370539#$Ultimate##0 ~n := #in~n; 368229#L25 assume ~n <= 0;#res := 1; 368190#factFINAL assume true; 368192#factEXIT >#66#return; 370606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370594#factFINAL assume true; 370571#factEXIT >#66#return; 370572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370622#factFINAL assume true; 370621#factEXIT >#66#return; 370620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370618#factFINAL assume true; 370617#factEXIT >#66#return; 370614#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370613#factFINAL assume true; 370611#factEXIT >#66#return; 370612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370664#factFINAL assume true; 370661#factEXIT >#66#return; 370660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370659#factFINAL assume true; 370637#factEXIT >#66#return; 368172#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370679#factFINAL assume true; 368159#factEXIT >#66#return; 368173#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 370680#factFINAL assume true; 370631#factEXIT >#72#return; 368253#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369384#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 369383#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369382#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369381#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369193#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369368#$Ultimate##0 ~n := #in~n; 369530#L25 assume !(~n <= 0); 368790#L26 call #t~ret0 := fact(~n - 1);< 369207#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369776#factFINAL assume true; 369365#factEXIT >#68#return; 368935#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369005#$Ultimate##0 ~n := #in~n; 369159#L25 assume !(~n <= 0); 368802#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369133#L25 assume !(~n <= 0); 368793#L26 call #t~ret0 := fact(~n - 1);< 369130#$Ultimate##0 ~n := #in~n; 369069#L25 assume !(~n <= 0); 368794#L26 call #t~ret0 := fact(~n - 1);< 369015#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369776#factFINAL assume true; 369365#factEXIT >#70#return; 368865#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 368899#$Ultimate##0 ~n := #in~n; 369007#L25 assume ~n <= 0;#res := 1; 368901#factFINAL assume true; 368827#factEXIT >#72#return; 368888#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369376#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 369375#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369374#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369373#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369205#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369368#$Ultimate##0 ~n := #in~n; 369530#L25 assume !(~n <= 0); 368790#L26 call #t~ret0 := fact(~n - 1);< 369207#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368806#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369369#factFINAL assume true; 369366#factEXIT >#68#return; 368973#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 369005#$Ultimate##0 ~n := #in~n; 369159#L25 assume !(~n <= 0); 368802#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369008#factFINAL assume true; 368902#factEXIT >#70#return; 368853#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369344#$Ultimate##0 ~n := #in~n; 369343#L25 assume ~n <= 0;#res := 1; 368901#factFINAL assume true; 368827#factEXIT >#72#return; 368895#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369364#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 369363#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369362#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369361#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369091#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369114#$Ultimate##0 ~n := #in~n; 369290#L25 assume !(~n <= 0); 368797#L26 call #t~ret0 := fact(~n - 1);< 369207#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369146#factFINAL assume true; 369083#factEXIT >#74#return; 368733#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368782#$Ultimate##0 ~n := #in~n; 369138#L25 assume !(~n <= 0); 368803#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369133#L25 assume !(~n <= 0); 368793#L26 call #t~ret0 := fact(~n - 1);< 369130#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368781#factFINAL assume true; 368676#factEXIT >#76#return; 368735#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369228#$Ultimate##0 ~n := #in~n; 369153#L25 assume !(~n <= 0); 368799#L26 call #t~ret0 := fact(~n - 1);< 369129#$Ultimate##0 ~n := #in~n; 369128#L25 assume ~n <= 0;#res := 1; 369072#factFINAL assume true; 369064#factEXIT >#66#return; 369068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369224#factFINAL assume true; 369216#factEXIT >#78#return; 369221#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369360#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369359#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369358#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369357#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369084#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369114#$Ultimate##0 ~n := #in~n; 369290#L25 assume !(~n <= 0); 368797#L26 call #t~ret0 := fact(~n - 1);< 369207#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369259#factFINAL assume true; 369230#factEXIT >#66#return; 369233#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369110#factFINAL assume true; 369113#factEXIT >#74#return; 368721#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368782#$Ultimate##0 ~n := #in~n; 369138#L25 assume !(~n <= 0); 368803#L26 call #t~ret0 := fact(~n - 1);< 369135#$Ultimate##0 ~n := #in~n; 369133#L25 assume !(~n <= 0); 368793#L26 call #t~ret0 := fact(~n - 1);< 369130#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368781#factFINAL assume true; 368676#factEXIT >#76#return; 368725#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 369228#$Ultimate##0 ~n := #in~n; 369153#L25 assume !(~n <= 0); 368799#L26 call #t~ret0 := fact(~n - 1);< 369129#$Ultimate##0 ~n := #in~n; 368826#L25 assume !(~n <= 0); 368821#L26 call #t~ret0 := fact(~n - 1);< 368823#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368781#factFINAL assume true; 368676#factEXIT >#78#return; 368777#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369336#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369335#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 369331#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 369234#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 369097#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 369114#$Ultimate##0 ~n := #in~n; 369290#L25 assume !(~n <= 0); 368797#L26 call #t~ret0 := fact(~n - 1);< 369207#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369259#factFINAL assume true; 369230#factEXIT >#66#return; 369229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369185#factFINAL assume true; 369164#factEXIT >#66#return; 369177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369297#factFINAL assume true; 369291#factEXIT >#66#return; 369294#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369338#factFINAL assume true; 369337#factEXIT >#74#return; 368741#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 368780#$Ultimate##0 ~n := #in~n; 369327#L25 assume !(~n <= 0); 368801#L26 call #t~ret0 := fact(~n - 1);< 368809#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369235#factFINAL assume true; 369210#factEXIT >#66#return; 369211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369259#factFINAL assume true; 369230#factEXIT >#66#return; 369229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369185#factFINAL assume true; 369164#factEXIT >#66#return; 369177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369297#factFINAL assume true; 369291#factEXIT >#66#return; 369289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369280#factFINAL assume true; 369273#factEXIT >#66#return; 369254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369262#factFINAL assume true; 369246#factEXIT >#66#return; 369226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 369149#factFINAL assume true; 369124#factEXIT >#76#return; 368752#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 368780#$Ultimate##0 ~n := #in~n; 369327#L25 assume !(~n <= 0); 368801#L26 call #t~ret0 := fact(~n - 1);< 368809#$Ultimate##0 ~n := #in~n; 369340#L25 assume !(~n <= 0); 368796#L26 call #t~ret0 := fact(~n - 1);< 368822#$Ultimate##0 ~n := #in~n; 368900#L25 assume ~n <= 0;#res := 1; 368825#factFINAL assume true; 368820#factEXIT >#66#return; 368818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368811#factFINAL assume true; 368785#factEXIT >#66#return; 368783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368781#factFINAL assume true; 368676#factEXIT >#78#return; 368776#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 369524#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 369522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 368667#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 368663#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 368258#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 368592#$Ultimate##0 ~n := #in~n; 369152#L25 assume !(~n <= 0); 368565#L26 call #t~ret0 := fact(~n - 1);< 368608#$Ultimate##0 ~n := #in~n; 368645#L25 assume !(~n <= 0); 368567#L26 call #t~ret0 := fact(~n - 1);< 368640#$Ultimate##0 ~n := #in~n; 368645#L25 assume !(~n <= 0); 368567#L26 call #t~ret0 := fact(~n - 1);< 368640#$Ultimate##0 ~n := #in~n; 368645#L25 assume !(~n <= 0); 368567#L26 call #t~ret0 := fact(~n - 1);< 368640#$Ultimate##0 ~n := #in~n; 368644#L25 assume ~n <= 0;#res := 1; 368643#factFINAL assume true; 368637#factEXIT >#66#return; 368634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368631#factFINAL assume true; 368625#factEXIT >#66#return; 368623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368621#factFINAL assume true; 368614#factEXIT >#66#return; 368611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368609#factFINAL assume true; 368600#factEXIT >#66#return; 368598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 368593#factFINAL assume true; 368588#factEXIT >#74#return; 368584#L30-6 [2023-02-17 09:42:23,078 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:23,078 INFO L85 PathProgramCache]: Analyzing trace with hash 1162121254, now seen corresponding path program 29 times [2023-02-17 09:42:23,078 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:23,078 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1796410320] [2023-02-17 09:42:23,078 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:23,079 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:23,094 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:23,094 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1448569073] [2023-02-17 09:42:23,094 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:23,094 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:23,094 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:23,098 INFO L229 MonitoredProcess]: Starting monitored process 207 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:23,099 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (207)] Waiting until timeout for monitored process [2023-02-17 09:42:23,744 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 23 check-sat command(s) [2023-02-17 09:42:23,744 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:23,748 INFO L263 TraceCheckSpWp]: Trace formula consists of 1154 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:42:23,752 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:23,792 INFO L134 CoverageAnalysis]: Checked inductivity of 20897 backedges. 10235 proven. 24 refuted. 0 times theorem prover too weak. 10638 trivial. 0 not checked. [2023-02-17 09:42:23,792 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:23,879 INFO L134 CoverageAnalysis]: Checked inductivity of 20897 backedges. 691 proven. 981 refuted. 0 times theorem prover too weak. 19225 trivial. 0 not checked. [2023-02-17 09:42:23,879 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:23,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1796410320] [2023-02-17 09:42:23,880 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:23,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1448569073] [2023-02-17 09:42:23,880 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1448569073] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:23,880 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:23,880 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 16 [2023-02-17 09:42:23,880 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1677917819] [2023-02-17 09:42:23,880 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:23,881 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:23,881 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:23,881 INFO L85 PathProgramCache]: Analyzing trace with hash 1563884551, now seen corresponding path program 23 times [2023-02-17 09:42:23,881 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:23,881 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1700295893] [2023-02-17 09:42:23,881 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:23,881 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:23,895 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:23,895 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1261849517] [2023-02-17 09:42:23,896 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:23,896 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:23,896 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:23,901 INFO L229 MonitoredProcess]: Starting monitored process 208 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:23,902 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (208)] Waiting until timeout for monitored process [2023-02-17 09:42:24,433 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 22 check-sat command(s) [2023-02-17 09:42:24,433 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:24,434 INFO L263 TraceCheckSpWp]: Trace formula consists of 248 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-17 09:42:24,438 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:24,557 INFO L134 CoverageAnalysis]: Checked inductivity of 17509 backedges. 7920 proven. 378 refuted. 0 times theorem prover too weak. 9211 trivial. 0 not checked. [2023-02-17 09:42:24,557 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:25,100 INFO L134 CoverageAnalysis]: Checked inductivity of 17509 backedges. 622 proven. 4322 refuted. 0 times theorem prover too weak. 12565 trivial. 0 not checked. [2023-02-17 09:42:25,101 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:25,101 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1700295893] [2023-02-17 09:42:25,101 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:25,101 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1261849517] [2023-02-17 09:42:25,101 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1261849517] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:25,101 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:25,101 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 35] total 40 [2023-02-17 09:42:25,101 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [300401200] [2023-02-17 09:42:25,101 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:25,102 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:25,102 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:25,102 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2023-02-17 09:42:25,103 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=210, Invalid=1350, Unknown=0, NotChecked=0, Total=1560 [2023-02-17 09:42:25,103 INFO L87 Difference]: Start difference. First operand 2530 states and 5565 transitions. cyclomatic complexity: 3060 Second operand has 40 states, 36 states have (on average 2.611111111111111) internal successors, (94), 38 states have internal predecessors, (94), 22 states have call successors, (38), 2 states have call predecessors, (38), 17 states have return successors, (49), 18 states have call predecessors, (49), 22 states have call successors, (49) [2023-02-17 09:42:26,681 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:26,681 INFO L93 Difference]: Finished difference Result 3235 states and 6698 transitions. [2023-02-17 09:42:26,681 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3235 states and 6698 transitions. [2023-02-17 09:42:26,703 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 936 [2023-02-17 09:42:26,724 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3235 states to 3231 states and 6694 transitions. [2023-02-17 09:42:26,724 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 429 [2023-02-17 09:42:26,725 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 465 [2023-02-17 09:42:26,725 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3231 states and 6694 transitions. [2023-02-17 09:42:26,725 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:26,725 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3231 states and 6694 transitions. [2023-02-17 09:42:26,726 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3231 states and 6694 transitions. [2023-02-17 09:42:26,792 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3231 to 2673. [2023-02-17 09:42:26,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2673 states, 1504 states have (on average 1.0538563829787233) internal successors, (1585), 1485 states have internal predecessors, (1585), 874 states have call successors, (934), 350 states have call predecessors, (934), 295 states have return successors, (3265), 837 states have call predecessors, (3265), 874 states have call successors, (3265) [2023-02-17 09:42:26,807 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2673 states to 2673 states and 5784 transitions. [2023-02-17 09:42:26,807 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2673 states and 5784 transitions. [2023-02-17 09:42:26,808 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 36 states. [2023-02-17 09:42:26,808 INFO L428 stractBuchiCegarLoop]: Abstraction has 2673 states and 5784 transitions. [2023-02-17 09:42:26,808 INFO L335 stractBuchiCegarLoop]: ======== Iteration 53 ============ [2023-02-17 09:42:26,808 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2673 states and 5784 transitions. [2023-02-17 09:42:26,815 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 715 [2023-02-17 09:42:26,815 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:26,815 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:26,817 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [93, 93, 59, 59, 59, 59, 34, 12, 11, 9, 9, 9, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:26,817 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [81, 81, 60, 60, 60, 60, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:26,818 INFO L748 eck$LassoCheckResult]: Stem: 380745#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 380694#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 380695#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 380713#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 380746#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 381536#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 381534#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381530#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381531#$Ultimate##0 ~n := #in~n; 381535#L25 assume ~n <= 0;#res := 1; 381533#factFINAL assume true; 381529#factEXIT >#68#return; 381524#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381525#$Ultimate##0 ~n := #in~n; 381532#L25 assume ~n <= 0;#res := 1; 381528#factFINAL assume true; 381523#factEXIT >#70#return; 381518#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381519#$Ultimate##0 ~n := #in~n; 381522#L25 assume ~n <= 0;#res := 1; 381521#factFINAL assume true; 381517#factEXIT >#72#return; 381516#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 381515#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 381513#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 381511#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 381510#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381502#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381503#$Ultimate##0 ~n := #in~n; 381527#L25 assume !(~n <= 0); 381505#L26 call #t~ret0 := fact(~n - 1);< 381508#$Ultimate##0 ~n := #in~n; 381514#L25 assume ~n <= 0;#res := 1; 381512#factFINAL assume true; 381504#factEXIT >#66#return; 381507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381509#factFINAL assume true; 381501#factEXIT >#74#return; 381491#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381492#$Ultimate##0 ~n := #in~n; 381500#L25 assume ~n <= 0;#res := 1; 381498#factFINAL assume true; 381490#factEXIT >#76#return; 381487#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381488#$Ultimate##0 ~n := #in~n; 381520#L25 assume !(~n <= 0); 381506#L26 call #t~ret0 := fact(~n - 1);< 381508#$Ultimate##0 ~n := #in~n; 381514#L25 assume ~n <= 0;#res := 1; 381512#factFINAL assume true; 381504#factEXIT >#66#return; 381499#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381497#factFINAL assume true; 381486#factEXIT >#78#return; 381481#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 381479#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 381476#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 381471#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 381469#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381442#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381444#$Ultimate##0 ~n := #in~n; 381559#L25 assume !(~n <= 0); 381456#L26 call #t~ret0 := fact(~n - 1);< 381458#$Ultimate##0 ~n := #in~n; 381496#L25 assume !(~n <= 0); 381457#L26 call #t~ret0 := fact(~n - 1);< 381485#$Ultimate##0 ~n := #in~n; 381493#L25 assume ~n <= 0;#res := 1; 381489#factFINAL assume true; 381482#factEXIT >#66#return; 381480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381477#factFINAL assume true; 381472#factEXIT >#66#return; 381470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381468#factFINAL assume true; 381466#factEXIT >#74#return; 381463#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381464#$Ultimate##0 ~n := #in~n; 381467#L25 assume ~n <= 0;#res := 1; 381465#factFINAL assume true; 381462#factEXIT >#76#return; 381460#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381461#$Ultimate##0 ~n := #in~n; 381495#L25 assume !(~n <= 0); 381473#L26 call #t~ret0 := fact(~n - 1);< 381478#$Ultimate##0 ~n := #in~n; 381494#L25 assume !(~n <= 0); 381483#L26 call #t~ret0 := fact(~n - 1);< 381484#$Ultimate##0 ~n := #in~n; 381493#L25 assume ~n <= 0;#res := 1; 381489#factFINAL assume true; 381482#factEXIT >#66#return; 381480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381477#factFINAL assume true; 381472#factEXIT >#66#return; 381474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381539#factFINAL assume true; 381459#factEXIT >#78#return; 381454#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 381451#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 381448#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 381447#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 381446#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381443#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381444#$Ultimate##0 ~n := #in~n; 381559#L25 assume !(~n <= 0); 381456#L26 call #t~ret0 := fact(~n - 1);< 381458#$Ultimate##0 ~n := #in~n; 381496#L25 assume !(~n <= 0); 381457#L26 call #t~ret0 := fact(~n - 1);< 381485#$Ultimate##0 ~n := #in~n; 381496#L25 assume !(~n <= 0); 381457#L26 call #t~ret0 := fact(~n - 1);< 381485#$Ultimate##0 ~n := #in~n; 381493#L25 assume ~n <= 0;#res := 1; 381489#factFINAL assume true; 381482#factEXIT >#66#return; 381480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381477#factFINAL assume true; 381472#factEXIT >#66#return; 381475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381558#factFINAL assume true; 381455#factEXIT >#66#return; 381453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381450#factFINAL assume true; 381441#factEXIT >#74#return; 381434#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381435#$Ultimate##0 ~n := #in~n; 381439#L25 assume ~n <= 0;#res := 1; 381438#factFINAL assume true; 381433#factEXIT >#76#return; 381420#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381428#$Ultimate##0 ~n := #in~n; 381425#L25 assume !(~n <= 0); 381402#L26 call #t~ret0 := fact(~n - 1);< 381418#$Ultimate##0 ~n := #in~n; 381445#L25 assume !(~n <= 0); 381406#L26 call #t~ret0 := fact(~n - 1);< 381409#$Ultimate##0 ~n := #in~n; 381440#L25 assume !(~n <= 0); 381401#L26 call #t~ret0 := fact(~n - 1);< 381437#$Ultimate##0 ~n := #in~n; 381452#L25 assume ~n <= 0;#res := 1; 381449#factFINAL assume true; 381436#factEXIT >#66#return; 381431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381430#factFINAL assume true; 381426#factEXIT >#66#return; 381423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381419#factFINAL assume true; 381417#factEXIT >#66#return; 381408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381568#factFINAL assume true; 381567#factEXIT >#78#return; 381566#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 381565#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 381564#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 381563#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 381562#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381020#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381395#$Ultimate##0 ~n := #in~n; 381410#L25 assume !(~n <= 0); 381404#L26 call #t~ret0 := fact(~n - 1);< 381409#$Ultimate##0 ~n := #in~n; 381440#L25 assume !(~n <= 0); 381401#L26 call #t~ret0 := fact(~n - 1);< 381437#$Ultimate##0 ~n := #in~n; 381440#L25 assume !(~n <= 0); 381401#L26 call #t~ret0 := fact(~n - 1);< 381437#$Ultimate##0 ~n := #in~n; 381440#L25 assume !(~n <= 0); 381401#L26 call #t~ret0 := fact(~n - 1);< 381437#$Ultimate##0 ~n := #in~n; 381452#L25 assume ~n <= 0;#res := 1; 381449#factFINAL assume true; 381436#factEXIT >#66#return; 381431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381430#factFINAL assume true; 381426#factEXIT >#66#return; 381423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381419#factFINAL assume true; 381417#factEXIT >#66#return; 381416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381412#factFINAL assume true; 381400#factEXIT >#66#return; 381398#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381396#factFINAL assume true; 381394#factEXIT >#74#return; 381083#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381092#$Ultimate##0 ~n := #in~n; 381279#L25 assume ~n <= 0;#res := 1; 381278#factFINAL assume true; 381273#factEXIT >#76#return; 381233#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381246#$Ultimate##0 ~n := #in~n; 381243#L25 assume !(~n <= 0); 381181#L26 call #t~ret0 := fact(~n - 1);< 381235#$Ultimate##0 ~n := #in~n; 381287#L25 assume !(~n <= 0); 381179#L26 call #t~ret0 := fact(~n - 1);< 381191#$Ultimate##0 ~n := #in~n; 381272#L25 assume !(~n <= 0); 381180#L26 call #t~ret0 := fact(~n - 1);< 381282#$Ultimate##0 ~n := #in~n; 381286#L25 assume ~n <= 0;#res := 1; 381285#factFINAL assume true; 381281#factEXIT >#66#return; 381266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381265#factFINAL assume true; 381264#factEXIT >#66#return; 381262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381251#factFINAL assume true; 381248#factEXIT >#66#return; 381228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383318#factFINAL assume true; 383316#factEXIT >#78#return; 381006#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 381004#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 381002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 380975#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 380871#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380869#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380870#$Ultimate##0 ~n := #in~n; 380984#L25 assume !(~n <= 0); 380980#L26 call #t~ret0 := fact(~n - 1);< 380982#$Ultimate##0 ~n := #in~n; 380994#L25 assume !(~n <= 0); 380981#L26 call #t~ret0 := fact(~n - 1);< 380992#$Ultimate##0 ~n := #in~n; 380994#L25 assume !(~n <= 0); 380981#L26 call #t~ret0 := fact(~n - 1);< 380992#$Ultimate##0 ~n := #in~n; 380994#L25 assume !(~n <= 0); 380981#L26 call #t~ret0 := fact(~n - 1);< 380992#$Ultimate##0 ~n := #in~n; 380994#L25 assume !(~n <= 0); 380981#L26 call #t~ret0 := fact(~n - 1);< 380992#$Ultimate##0 ~n := #in~n; 380994#L25 assume !(~n <= 0); 380981#L26 call #t~ret0 := fact(~n - 1);< 380992#$Ultimate##0 ~n := #in~n; 381046#L25 assume ~n <= 0;#res := 1; 381045#factFINAL assume true; 381044#factEXIT >#66#return; 381043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381042#factFINAL assume true; 381040#factEXIT >#66#return; 381038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381036#factFINAL assume true; 381034#factEXIT >#66#return; 381032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381031#factFINAL assume true; 381027#factEXIT >#66#return; 381026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381025#factFINAL assume true; 380991#factEXIT >#66#return; 380990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380989#factFINAL assume true; 380979#factEXIT >#66#return; 380978#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380945#factFINAL assume true; 380868#factEXIT >#74#return; 380864#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380865#$Ultimate##0 ~n := #in~n; 380877#L25 assume ~n <= 0;#res := 1; 380875#factFINAL assume true; 380863#factEXIT >#76#return; 380843#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 380861#$Ultimate##0 ~n := #in~n; 380860#L25 assume !(~n <= 0); 380812#L26 call #t~ret0 := fact(~n - 1);< 380841#$Ultimate##0 ~n := #in~n; 381014#L25 assume !(~n <= 0); 380810#L26 call #t~ret0 := fact(~n - 1);< 380848#$Ultimate##0 ~n := #in~n; 380900#L25 assume !(~n <= 0); 380817#L26 call #t~ret0 := fact(~n - 1);< 380867#$Ultimate##0 ~n := #in~n; 381024#L25 assume !(~n <= 0); 380814#L26 call #t~ret0 := fact(~n - 1);< 380855#$Ultimate##0 ~n := #in~n; 381028#L25 assume !(~n <= 0); 380816#L26 call #t~ret0 := fact(~n - 1);< 380826#$Ultimate##0 ~n := #in~n; 380938#L25 assume !(~n <= 0); 380813#L26 call #t~ret0 := fact(~n - 1);< 380935#$Ultimate##0 ~n := #in~n; 380938#L25 assume !(~n <= 0); 380813#L26 call #t~ret0 := fact(~n - 1);< 380935#$Ultimate##0 ~n := #in~n; 380941#L25 assume ~n <= 0;#res := 1; 380937#factFINAL assume true; 380934#factEXIT >#66#return; 380931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380926#factFINAL assume true; 380902#factEXIT >#66#return; 380899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380897#factFINAL assume true; 380895#factEXIT >#66#return; 380893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380889#factFINAL assume true; 380866#factEXIT >#66#return; 380862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380854#factFINAL assume true; 380847#factEXIT >#66#return; 380844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380842#factFINAL assume true; 380839#factEXIT >#66#return; 380838#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 380837#factFINAL assume true; 380836#factEXIT >#66#return; 380823#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382571#factFINAL assume true; 382559#factEXIT >#78#return; 380792#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382501#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382498#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 382497#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 382495#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 382493#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382492#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382475#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382491#$Ultimate##0 ~n := #in~n; 382548#L25 assume !(~n <= 0); 382546#L26 call #t~ret0 := fact(~n - 1);< 382547#$Ultimate##0 ~n := #in~n; 382550#L25 assume ~n <= 0;#res := 1; 382549#factFINAL assume true; 382545#factEXIT >#66#return; 382543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382533#factFINAL assume true; 382490#factEXIT >#68#return; 382469#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380732#$Ultimate##0 ~n := #in~n; 382529#L25 assume ~n <= 0;#res := 1; 382528#factFINAL assume true; 382467#factEXIT >#70#return; 382465#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382466#$Ultimate##0 ~n := #in~n; 382523#L25 assume !(~n <= 0); 382521#L26 call #t~ret0 := fact(~n - 1);< 382522#$Ultimate##0 ~n := #in~n; 382525#L25 assume ~n <= 0;#res := 1; 382524#factFINAL assume true; 382520#factEXIT >#66#return; 382519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382518#factFINAL assume true; 382464#factEXIT >#72#return; 382463#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382461#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382460#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382459#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382458#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382270#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382457#$Ultimate##0 ~n := #in~n; 382462#L25 assume !(~n <= 0); 381994#L26 call #t~ret0 := fact(~n - 1);< 382359#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382456#factFINAL assume true; 382209#factEXIT >#68#return; 382279#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382306#$Ultimate##0 ~n := #in~n; 382440#L25 assume !(~n <= 0); 382007#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382456#factFINAL assume true; 382209#factEXIT >#70#return; 382169#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382207#$Ultimate##0 ~n := #in~n; 382516#L25 assume ~n <= 0;#res := 1; 382144#factFINAL assume true; 382159#factEXIT >#72#return; 382158#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382156#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382154#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382153#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382152#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381868#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381967#$Ultimate##0 ~n := #in~n; 382362#L25 assume !(~n <= 0); 381995#L26 call #t~ret0 := fact(~n - 1);< 382359#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382107#factFINAL assume true; 382062#factEXIT >#74#return; 381876#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380742#$Ultimate##0 ~n := #in~n; 382433#L25 assume !(~n <= 0); 382009#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381991#factFINAL assume true; 381970#factEXIT >#76#return; 381980#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382150#$Ultimate##0 ~n := #in~n; 382149#L25 assume !(~n <= 0); 382051#L26 call #t~ret0 := fact(~n - 1);< 382056#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381991#factFINAL assume true; 381970#factEXIT >#78#return; 381987#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382513#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382505#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382503#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382109#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381893#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381966#$Ultimate##0 ~n := #in~n; 382365#L25 assume !(~n <= 0); 382021#L26 call #t~ret0 := fact(~n - 1);< 382130#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 381990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381968#factFINAL assume true; 381962#factEXIT >#74#return; 381902#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380742#$Ultimate##0 ~n := #in~n; 382433#L25 assume !(~n <= 0); 382009#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381991#factFINAL assume true; 381970#factEXIT >#76#return; 381981#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382068#$Ultimate##0 ~n := #in~n; 382151#L25 assume !(~n <= 0); 382049#L26 call #t~ret0 := fact(~n - 1);< 382111#$Ultimate##0 ~n := #in~n; 383069#L25 assume !(~n <= 0); 382507#L26 call #t~ret0 := fact(~n - 1);< 382510#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382107#factFINAL assume true; 382062#factEXIT >#78#return; 382060#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382059#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382058#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382057#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382036#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381907#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381966#$Ultimate##0 ~n := #in~n; 382365#L25 assume !(~n <= 0); 382021#L26 call #t~ret0 := fact(~n - 1);< 382130#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 382032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382037#factFINAL assume true; 381993#factEXIT >#66#return; 381989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381965#factFINAL assume true; 381850#factEXIT >#74#return; 381914#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380742#$Ultimate##0 ~n := #in~n; 382433#L25 assume !(~n <= 0); 382009#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381991#factFINAL assume true; 381970#factEXIT >#76#return; 381913#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381964#$Ultimate##0 ~n := #in~n; 382364#L25 assume !(~n <= 0); 381997#L26 call #t~ret0 := fact(~n - 1);< 382034#$Ultimate##0 ~n := #in~n; 382640#L25 assume !(~n <= 0); 382028#L26 call #t~ret0 := fact(~n - 1);< 382080#$Ultimate##0 ~n := #in~n; 382967#L25 assume !(~n <= 0); 382071#L26 call #t~ret0 := fact(~n - 1);< 382508#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 381990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381968#factFINAL assume true; 381962#factEXIT >#78#return; 381961#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 381960#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 381959#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 381849#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 381845#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380766#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380649#$Ultimate##0 ~n := #in~n; 381808#L25 assume !(~n <= 0); 381072#L26 call #t~ret0 := fact(~n - 1);< 381806#$Ultimate##0 ~n := #in~n; 381804#L25 assume !(~n <= 0); 381062#L26 call #t~ret0 := fact(~n - 1);< 381786#$Ultimate##0 ~n := #in~n; 381799#L25 assume !(~n <= 0); 381060#L26 call #t~ret0 := fact(~n - 1);< 381796#$Ultimate##0 ~n := #in~n; 381799#L25 assume !(~n <= 0); 381060#L26 call #t~ret0 := fact(~n - 1);< 381796#$Ultimate##0 ~n := #in~n; 381799#L25 assume !(~n <= 0); 381060#L26 call #t~ret0 := fact(~n - 1);< 381796#$Ultimate##0 ~n := #in~n; 381801#L25 assume ~n <= 0;#res := 1; 381798#factFINAL assume true; 381794#factEXIT >#66#return; 381792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381789#factFINAL assume true; 381783#factEXIT >#66#return; 381782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381780#factFINAL assume true; 381774#factEXIT >#66#return; 381772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381768#factFINAL assume true; 381759#factEXIT >#66#return; 381762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381770#factFINAL assume true; 381764#factEXIT >#66#return; 381758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381755#factFINAL assume true; 381751#factEXIT >#74#return; 381744#L30-6 [2023-02-17 09:42:26,818 INFO L750 eck$LassoCheckResult]: Loop: 381744#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 381747#$Ultimate##0 ~n := #in~n; 381746#L25 assume !(~n <= 0); 381738#L26 call #t~ret0 := fact(~n - 1);< 381742#$Ultimate##0 ~n := #in~n; 381743#L25 assume ~n <= 0;#res := 1; 381829#factFINAL assume true; 381828#factEXIT >#66#return; 381827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381826#factFINAL assume true; 381824#factEXIT >#76#return; 381749#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381823#$Ultimate##0 ~n := #in~n; 381810#L25 assume !(~n <= 0); 381760#L26 call #t~ret0 := fact(~n - 1);< 381763#$Ultimate##0 ~n := #in~n; 381816#L25 assume !(~n <= 0); 381776#L26 call #t~ret0 := fact(~n - 1);< 381779#$Ultimate##0 ~n := #in~n; 381791#L25 assume !(~n <= 0); 381784#L26 call #t~ret0 := fact(~n - 1);< 381788#$Ultimate##0 ~n := #in~n; 381800#L25 assume !(~n <= 0); 381795#L26 call #t~ret0 := fact(~n - 1);< 381797#$Ultimate##0 ~n := #in~n; 381801#L25 assume ~n <= 0;#res := 1; 381798#factFINAL assume true; 381794#factEXIT >#66#return; 381792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381789#factFINAL assume true; 381783#factEXIT >#66#return; 381782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381780#factFINAL assume true; 381774#factEXIT >#66#return; 381772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381768#factFINAL assume true; 381759#factEXIT >#66#return; 381757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381753#factFINAL assume true; 381748#factEXIT >#78#return; 380789#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 380714#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 380715#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 380755#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 380756#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 380705#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 380706#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 380717#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380718#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 380672#$Ultimate##0 ~n := #in~n; 383084#L25 assume !(~n <= 0); 383079#L26 call #t~ret0 := fact(~n - 1);< 383083#$Ultimate##0 ~n := #in~n; 382551#L25 assume !(~n <= 0); 383080#L26 call #t~ret0 := fact(~n - 1);< 383087#$Ultimate##0 ~n := #in~n; 382551#L25 assume !(~n <= 0); 383080#L26 call #t~ret0 := fact(~n - 1);< 383087#$Ultimate##0 ~n := #in~n; 382551#L25 assume !(~n <= 0); 383080#L26 call #t~ret0 := fact(~n - 1);< 383087#$Ultimate##0 ~n := #in~n; 382551#L25 assume !(~n <= 0); 383080#L26 call #t~ret0 := fact(~n - 1);< 383087#$Ultimate##0 ~n := #in~n; 382551#L25 assume !(~n <= 0); 383080#L26 call #t~ret0 := fact(~n - 1);< 383087#$Ultimate##0 ~n := #in~n; 383088#L25 assume ~n <= 0;#res := 1; 383096#factFINAL assume true; 383094#factEXIT >#66#return; 383089#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383090#factFINAL assume true; 383091#factEXIT >#66#return; 383092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383085#factFINAL assume true; 383086#factEXIT >#66#return; 383100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383099#factFINAL assume true; 383098#factEXIT >#66#return; 383097#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383095#factFINAL assume true; 383078#factEXIT >#66#return; 383081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383159#factFINAL assume true; 383105#factEXIT >#66#return; 383107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383158#factFINAL assume true; 383101#factEXIT >#68#return; 382468#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382491#$Ultimate##0 ~n := #in~n; 382548#L25 assume ~n <= 0;#res := 1; 382528#factFINAL assume true; 382467#factEXIT >#70#return; 382481#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 383274#$Ultimate##0 ~n := #in~n; 383273#L25 assume !(~n <= 0); 383216#L26 call #t~ret0 := fact(~n - 1);< 383224#$Ultimate##0 ~n := #in~n; 383280#L25 assume !(~n <= 0); 383232#L26 call #t~ret0 := fact(~n - 1);< 383234#$Ultimate##0 ~n := #in~n; 383296#L25 assume !(~n <= 0); 383251#L26 call #t~ret0 := fact(~n - 1);< 383254#$Ultimate##0 ~n := #in~n; 383290#L25 assume !(~n <= 0); 380701#L26 call #t~ret0 := fact(~n - 1);< 383265#$Ultimate##0 ~n := #in~n; 380728#L25 assume !(~n <= 0); 380700#L26 call #t~ret0 := fact(~n - 1);< 380702#$Ultimate##0 ~n := #in~n; 382526#L25 assume !(~n <= 0); 380654#L26 call #t~ret0 := fact(~n - 1);< 380735#$Ultimate##0 ~n := #in~n; 380736#L25 assume ~n <= 0;#res := 1; 383130#factFINAL assume true; 380652#factEXIT >#66#return; 380658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383289#factFINAL assume true; 383121#factEXIT >#66#return; 383126#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383277#factFINAL assume true; 383264#factEXIT >#66#return; 383262#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383259#factFINAL assume true; 383249#factEXIT >#66#return; 383246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383241#factFINAL assume true; 383230#factEXIT >#66#return; 383227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383223#factFINAL assume true; 383213#factEXIT >#66#return; 383217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 383114#factFINAL assume true; 383115#factEXIT >#72#return; 380707#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 380708#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382624#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382621#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382620#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382116#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382517#$Ultimate##0 ~n := #in~n; 382515#L25 assume !(~n <= 0); 381996#L26 call #t~ret0 := fact(~n - 1);< 382130#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382584#factFINAL assume true; 382580#factEXIT >#68#return; 382212#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382306#$Ultimate##0 ~n := #in~n; 382440#L25 assume !(~n <= 0); 382007#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382499#L25 assume !(~n <= 0); 382011#L26 call #t~ret0 := fact(~n - 1);< 382078#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382584#factFINAL assume true; 382580#factEXIT >#70#return; 382097#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382157#$Ultimate##0 ~n := #in~n; 382155#L25 assume !(~n <= 0); 382050#L26 call #t~ret0 := fact(~n - 1);< 382056#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382054#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382606#factFINAL assume true; 382605#factEXIT >#72#return; 382196#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382618#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382616#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382614#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382596#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 382118#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 382517#$Ultimate##0 ~n := #in~n; 382515#L25 assume !(~n <= 0); 381996#L26 call #t~ret0 := fact(~n - 1);< 382130#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 382032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382037#factFINAL assume true; 381993#factEXIT >#66#return; 382024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382439#factFINAL assume true; 382418#factEXIT >#66#return; 382419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382587#factFINAL assume true; 382582#factEXIT >#68#return; 382277#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 382306#$Ultimate##0 ~n := #in~n; 382440#L25 assume !(~n <= 0); 382007#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382499#L25 assume !(~n <= 0); 382011#L26 call #t~ret0 := fact(~n - 1);< 382078#$Ultimate##0 ~n := #in~n; 382990#L25 assume !(~n <= 0); 382029#L26 call #t~ret0 := fact(~n - 1);< 382509#$Ultimate##0 ~n := #in~n; 382967#L25 assume !(~n <= 0); 382071#L26 call #t~ret0 := fact(~n - 1);< 382508#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 382032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382037#factFINAL assume true; 381993#factEXIT >#66#return; 382022#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382586#factFINAL assume true; 382581#factEXIT >#70#return; 382083#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382544#$Ultimate##0 ~n := #in~n; 382542#L25 assume ~n <= 0;#res := 1; 382144#factFINAL assume true; 382159#factEXIT >#72#return; 382198#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382576#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 382573#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382569#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382562#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381941#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381966#$Ultimate##0 ~n := #in~n; 382365#L25 assume !(~n <= 0); 382021#L26 call #t~ret0 := fact(~n - 1);< 382130#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 381990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381968#factFINAL assume true; 381962#factEXIT >#74#return; 381952#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380742#$Ultimate##0 ~n := #in~n; 382433#L25 assume !(~n <= 0); 382009#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381991#factFINAL assume true; 381970#factEXIT >#76#return; 381972#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382068#$Ultimate##0 ~n := #in~n; 382151#L25 assume !(~n <= 0); 382049#L26 call #t~ret0 := fact(~n - 1);< 382111#$Ultimate##0 ~n := #in~n; 382106#L25 assume ~n <= 0;#res := 1; 382081#factFINAL assume true; 382048#factEXIT >#66#return; 382035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381991#factFINAL assume true; 381970#factEXIT >#78#return; 381985#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382344#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382345#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382340#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382341#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381875#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381966#$Ultimate##0 ~n := #in~n; 382365#L25 assume !(~n <= 0); 382021#L26 call #t~ret0 := fact(~n - 1);< 382130#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 382032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382037#factFINAL assume true; 381993#factEXIT >#66#return; 381989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381965#factFINAL assume true; 381850#factEXIT >#74#return; 381925#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380742#$Ultimate##0 ~n := #in~n; 382433#L25 assume !(~n <= 0); 382009#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382499#L25 assume !(~n <= 0); 382011#L26 call #t~ret0 := fact(~n - 1);< 382078#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382107#factFINAL assume true; 382062#factEXIT >#76#return; 381977#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 382068#$Ultimate##0 ~n := #in~n; 382151#L25 assume !(~n <= 0); 382049#L26 call #t~ret0 := fact(~n - 1);< 382111#$Ultimate##0 ~n := #in~n; 383069#L25 assume !(~n <= 0); 382507#L26 call #t~ret0 := fact(~n - 1);< 382510#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382107#factFINAL assume true; 382062#factEXIT >#78#return; 382066#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382554#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382553#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382552#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382534#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 381951#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381966#$Ultimate##0 ~n := #in~n; 382365#L25 assume !(~n <= 0); 382021#L26 call #t~ret0 := fact(~n - 1);< 382130#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382496#L25 assume !(~n <= 0); 382000#L26 call #t~ret0 := fact(~n - 1);< 382511#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 382032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382037#factFINAL assume true; 381993#factEXIT >#66#return; 382024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382439#factFINAL assume true; 382418#factEXIT >#66#return; 382421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382423#factFINAL assume true; 382311#factEXIT >#74#return; 381861#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 380742#$Ultimate##0 ~n := #in~n; 382433#L25 assume !(~n <= 0); 382009#L26 call #t~ret0 := fact(~n - 1);< 382426#$Ultimate##0 ~n := #in~n; 382499#L25 assume !(~n <= 0); 382011#L26 call #t~ret0 := fact(~n - 1);< 382078#$Ultimate##0 ~n := #in~n; 382990#L25 assume !(~n <= 0); 382029#L26 call #t~ret0 := fact(~n - 1);< 382509#$Ultimate##0 ~n := #in~n; 382967#L25 assume !(~n <= 0); 382071#L26 call #t~ret0 := fact(~n - 1);< 382508#$Ultimate##0 ~n := #in~n; 383069#L25 assume !(~n <= 0); 382507#L26 call #t~ret0 := fact(~n - 1);< 382510#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382040#factFINAL assume true; 382027#factEXIT >#66#return; 382032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382037#factFINAL assume true; 381993#factEXIT >#66#return; 382024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382439#factFINAL assume true; 382418#factEXIT >#66#return; 382421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382423#factFINAL assume true; 382311#factEXIT >#76#return; 381864#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 381992#$Ultimate##0 ~n := #in~n; 382448#L25 assume !(~n <= 0); 382016#L26 call #t~ret0 := fact(~n - 1);< 382055#$Ultimate##0 ~n := #in~n; 382990#L25 assume !(~n <= 0); 382029#L26 call #t~ret0 := fact(~n - 1);< 382509#$Ultimate##0 ~n := #in~n; 382532#L25 assume ~n <= 0;#res := 1; 382530#factFINAL assume true; 382506#factEXIT >#66#return; 382504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382110#factFINAL assume true; 382070#factEXIT >#66#return; 382075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 382107#factFINAL assume true; 382062#factEXIT >#78#return; 382065#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 382333#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 382332#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 382331#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 382326#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 380760#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 381752#$Ultimate##0 ~n := #in~n; 381825#L25 assume !(~n <= 0); 381068#L26 call #t~ret0 := fact(~n - 1);< 381802#$Ultimate##0 ~n := #in~n; 381799#L25 assume !(~n <= 0); 381060#L26 call #t~ret0 := fact(~n - 1);< 381796#$Ultimate##0 ~n := #in~n; 381799#L25 assume !(~n <= 0); 381060#L26 call #t~ret0 := fact(~n - 1);< 381796#$Ultimate##0 ~n := #in~n; 381799#L25 assume !(~n <= 0); 381060#L26 call #t~ret0 := fact(~n - 1);< 381796#$Ultimate##0 ~n := #in~n; 381801#L25 assume ~n <= 0;#res := 1; 381798#factFINAL assume true; 381794#factEXIT >#66#return; 381792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381789#factFINAL assume true; 381783#factEXIT >#66#return; 381782#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381780#factFINAL assume true; 381774#factEXIT >#66#return; 381772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381768#factFINAL assume true; 381759#factEXIT >#66#return; 381757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 381753#factFINAL assume true; 381748#factEXIT >#74#return; 381744#L30-6 [2023-02-17 09:42:26,819 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:26,819 INFO L85 PathProgramCache]: Analyzing trace with hash 1162121254, now seen corresponding path program 30 times [2023-02-17 09:42:26,819 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:26,819 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [398991032] [2023-02-17 09:42:26,820 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:26,820 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:26,838 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:26,838 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1671876128] [2023-02-17 09:42:26,838 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:42:26,838 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:26,838 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:26,843 INFO L229 MonitoredProcess]: Starting monitored process 209 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:26,844 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (209)] Waiting until timeout for monitored process [2023-02-17 09:42:27,508 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 19 check-sat command(s) [2023-02-17 09:42:27,508 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:27,513 INFO L263 TraceCheckSpWp]: Trace formula consists of 1000 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:42:27,518 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:27,626 INFO L134 CoverageAnalysis]: Checked inductivity of 20897 backedges. 2503 proven. 1229 refuted. 0 times theorem prover too weak. 17165 trivial. 0 not checked. [2023-02-17 09:42:27,626 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:27,906 INFO L134 CoverageAnalysis]: Checked inductivity of 20897 backedges. 2503 proven. 1257 refuted. 0 times theorem prover too weak. 17137 trivial. 0 not checked. [2023-02-17 09:42:27,906 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:27,906 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [398991032] [2023-02-17 09:42:27,906 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:27,906 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1671876128] [2023-02-17 09:42:27,906 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1671876128] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:27,906 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:27,906 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 26] total 30 [2023-02-17 09:42:27,906 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [127927189] [2023-02-17 09:42:27,906 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:27,907 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:27,907 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:27,907 INFO L85 PathProgramCache]: Analyzing trace with hash -1958696681, now seen corresponding path program 24 times [2023-02-17 09:42:27,907 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:27,907 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [259499160] [2023-02-17 09:42:27,907 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:27,907 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:27,922 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:27,922 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1236935936] [2023-02-17 09:42:27,922 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:42:27,922 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:27,922 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:27,924 INFO L229 MonitoredProcess]: Starting monitored process 210 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:27,925 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (210)] Waiting until timeout for monitored process [2023-02-17 09:42:28,461 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 17 check-sat command(s) [2023-02-17 09:42:28,462 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:28,463 INFO L263 TraceCheckSpWp]: Trace formula consists of 294 conjuncts, 24 conjunts are in the unsatisfiable core [2023-02-17 09:42:28,466 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:28,534 INFO L134 CoverageAnalysis]: Checked inductivity of 16615 backedges. 2484 proven. 152 refuted. 0 times theorem prover too weak. 13979 trivial. 0 not checked. [2023-02-17 09:42:28,534 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:28,723 INFO L134 CoverageAnalysis]: Checked inductivity of 16615 backedges. 2484 proven. 172 refuted. 0 times theorem prover too weak. 13959 trivial. 0 not checked. [2023-02-17 09:42:28,724 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:28,724 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [259499160] [2023-02-17 09:42:28,724 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:28,724 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1236935936] [2023-02-17 09:42:28,724 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1236935936] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:28,724 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:28,724 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 21] total 24 [2023-02-17 09:42:28,724 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [510603348] [2023-02-17 09:42:28,724 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:28,725 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:28,725 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:28,725 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2023-02-17 09:42:28,725 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=507, Unknown=0, NotChecked=0, Total=600 [2023-02-17 09:42:28,725 INFO L87 Difference]: Start difference. First operand 2673 states and 5784 transitions. cyclomatic complexity: 3136 Second operand has 25 states, 21 states have (on average 2.857142857142857) internal successors, (60), 24 states have internal predecessors, (60), 14 states have call successors, (22), 1 states have call predecessors, (22), 9 states have return successors, (26), 12 states have call predecessors, (26), 14 states have call successors, (26) [2023-02-17 09:42:29,438 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:29,439 INFO L93 Difference]: Finished difference Result 3111 states and 6838 transitions. [2023-02-17 09:42:29,439 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3111 states and 6838 transitions. [2023-02-17 09:42:29,458 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 1090 [2023-02-17 09:42:29,480 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3111 states to 3109 states and 6829 transitions. [2023-02-17 09:42:29,481 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 471 [2023-02-17 09:42:29,481 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 471 [2023-02-17 09:42:29,481 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3109 states and 6829 transitions. [2023-02-17 09:42:29,482 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:29,482 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3109 states and 6829 transitions. [2023-02-17 09:42:29,483 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3109 states and 6829 transitions. [2023-02-17 09:42:29,537 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3109 to 2699. [2023-02-17 09:42:29,540 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2699 states, 1534 states have (on average 1.0541069100391134) internal successors, (1617), 1515 states have internal predecessors, (1617), 870 states have call successors, (930), 350 states have call predecessors, (930), 295 states have return successors, (3226), 833 states have call predecessors, (3226), 870 states have call successors, (3226) [2023-02-17 09:42:29,551 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2699 states to 2699 states and 5773 transitions. [2023-02-17 09:42:29,552 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2699 states and 5773 transitions. [2023-02-17 09:42:29,552 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2023-02-17 09:42:29,553 INFO L428 stractBuchiCegarLoop]: Abstraction has 2699 states and 5773 transitions. [2023-02-17 09:42:29,553 INFO L335 stractBuchiCegarLoop]: ======== Iteration 54 ============ [2023-02-17 09:42:29,553 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2699 states and 5773 transitions. [2023-02-17 09:42:29,560 INFO L131 ngComponentsAnalysis]: Automaton has 2 accepting balls. 742 [2023-02-17 09:42:29,560 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:29,560 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:29,562 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [93, 93, 59, 59, 59, 59, 34, 12, 11, 9, 9, 9, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:29,562 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [78, 78, 57, 57, 57, 57, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:29,562 INFO L748 eck$LassoCheckResult]: Stem: 393149#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 393100#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 393101#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 393119#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 393111#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 393112#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394813#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393098#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393099#$Ultimate##0 ~n := #in~n; 394748#L25 assume ~n <= 0;#res := 1; 394746#factFINAL assume true; 394744#factEXIT >#68#return; 393139#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393140#$Ultimate##0 ~n := #in~n; 394919#L25 assume ~n <= 0;#res := 1; 394918#factFINAL assume true; 394825#factEXIT >#70#return; 393077#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393078#$Ultimate##0 ~n := #in~n; 394863#L25 assume ~n <= 0;#res := 1; 394862#factFINAL assume true; 394861#factEXIT >#72#return; 394860#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394859#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 394850#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394841#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394840#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 394838#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 394839#$Ultimate##0 ~n := #in~n; 394856#L25 assume !(~n <= 0); 394854#L26 call #t~ret0 := fact(~n - 1);< 394855#$Ultimate##0 ~n := #in~n; 394915#L25 assume ~n <= 0;#res := 1; 394914#factFINAL assume true; 394886#factEXIT >#66#return; 394888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394845#factFINAL assume true; 394846#factEXIT >#74#return; 394828#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394830#$Ultimate##0 ~n := #in~n; 394833#L25 assume ~n <= 0;#res := 1; 394832#factFINAL assume true; 394827#factEXIT >#76#return; 394829#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 394866#$Ultimate##0 ~n := #in~n; 394916#L25 assume !(~n <= 0); 394887#L26 call #t~ret0 := fact(~n - 1);< 394855#$Ultimate##0 ~n := #in~n; 394915#L25 assume ~n <= 0;#res := 1; 394914#factFINAL assume true; 394886#factEXIT >#66#return; 394889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394921#factFINAL assume true; 394865#factEXIT >#78#return; 394864#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394857#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 394858#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394895#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394894#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 394835#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 394872#$Ultimate##0 ~n := #in~n; 394893#L25 assume !(~n <= 0); 394852#L26 call #t~ret0 := fact(~n - 1);< 394891#$Ultimate##0 ~n := #in~n; 394905#L25 assume !(~n <= 0); 394853#L26 call #t~ret0 := fact(~n - 1);< 394904#$Ultimate##0 ~n := #in~n; 394913#L25 assume ~n <= 0;#res := 1; 394912#factFINAL assume true; 394907#factEXIT >#66#return; 394906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394903#factFINAL assume true; 394898#factEXIT >#66#return; 394882#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394883#factFINAL assume true; 394834#factEXIT >#74#return; 394837#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394885#$Ultimate##0 ~n := #in~n; 394892#L25 assume ~n <= 0;#res := 1; 394890#factFINAL assume true; 394884#factEXIT >#76#return; 394880#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 394881#$Ultimate##0 ~n := #in~n; 394902#L25 assume !(~n <= 0); 394899#L26 call #t~ret0 := fact(~n - 1);< 394901#$Ultimate##0 ~n := #in~n; 394911#L25 assume !(~n <= 0); 394908#L26 call #t~ret0 := fact(~n - 1);< 394909#$Ultimate##0 ~n := #in~n; 394913#L25 assume ~n <= 0;#res := 1; 394912#factFINAL assume true; 394907#factEXIT >#66#return; 394906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394903#factFINAL assume true; 394898#factEXIT >#66#return; 394897#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394896#factFINAL assume true; 394879#factEXIT >#78#return; 394878#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394877#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 394876#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394875#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394874#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 394836#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 394872#$Ultimate##0 ~n := #in~n; 394893#L25 assume !(~n <= 0); 394852#L26 call #t~ret0 := fact(~n - 1);< 394891#$Ultimate##0 ~n := #in~n; 394905#L25 assume !(~n <= 0); 394853#L26 call #t~ret0 := fact(~n - 1);< 394904#$Ultimate##0 ~n := #in~n; 394905#L25 assume !(~n <= 0); 394853#L26 call #t~ret0 := fact(~n - 1);< 394904#$Ultimate##0 ~n := #in~n; 394913#L25 assume ~n <= 0;#res := 1; 394912#factFINAL assume true; 394907#factEXIT >#66#return; 394906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394903#factFINAL assume true; 394898#factEXIT >#66#return; 394900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394910#factFINAL assume true; 394851#factEXIT >#66#return; 394848#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394849#factFINAL assume true; 394871#factEXIT >#74#return; 394868#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394869#$Ultimate##0 ~n := #in~n; 394873#L25 assume ~n <= 0;#res := 1; 394870#factFINAL assume true; 394867#factEXIT >#76#return; 393152#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393153#$Ultimate##0 ~n := #in~n; 394993#L25 assume !(~n <= 0); 394976#L26 call #t~ret0 := fact(~n - 1);< 394988#$Ultimate##0 ~n := #in~n; 395004#L25 assume !(~n <= 0); 394973#L26 call #t~ret0 := fact(~n - 1);< 394980#$Ultimate##0 ~n := #in~n; 395005#L25 assume !(~n <= 0); 394975#L26 call #t~ret0 := fact(~n - 1);< 395002#$Ultimate##0 ~n := #in~n; 395006#L25 assume ~n <= 0;#res := 1; 395003#factFINAL assume true; 395001#factEXIT >#66#return; 395000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394998#factFINAL assume true; 394994#factEXIT >#66#return; 394990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394989#factFINAL assume true; 394987#factEXIT >#66#return; 394979#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394960#factFINAL assume true; 394946#factEXIT >#78#return; 394947#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394981#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 394970#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394968#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394965#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 394963#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 394964#$Ultimate##0 ~n := #in~n; 394991#L25 assume !(~n <= 0); 394972#L26 call #t~ret0 := fact(~n - 1);< 394980#$Ultimate##0 ~n := #in~n; 395005#L25 assume !(~n <= 0); 394975#L26 call #t~ret0 := fact(~n - 1);< 395002#$Ultimate##0 ~n := #in~n; 395005#L25 assume !(~n <= 0); 394975#L26 call #t~ret0 := fact(~n - 1);< 395002#$Ultimate##0 ~n := #in~n; 395005#L25 assume !(~n <= 0); 394975#L26 call #t~ret0 := fact(~n - 1);< 395002#$Ultimate##0 ~n := #in~n; 395006#L25 assume ~n <= 0;#res := 1; 395003#factFINAL assume true; 395001#factEXIT >#66#return; 395000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394998#factFINAL assume true; 394994#factEXIT >#66#return; 394990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394989#factFINAL assume true; 394987#factEXIT >#66#return; 394986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394982#factFINAL assume true; 394971#factEXIT >#66#return; 394969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394967#factFINAL assume true; 394962#factEXIT >#74#return; 394953#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394959#$Ultimate##0 ~n := #in~n; 395203#L25 assume ~n <= 0;#res := 1; 395201#factFINAL assume true; 395196#factEXIT >#76#return; 393384#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393386#$Ultimate##0 ~n := #in~n; 395275#L25 assume !(~n <= 0); 395229#L26 call #t~ret0 := fact(~n - 1);< 395274#$Ultimate##0 ~n := #in~n; 395300#L25 assume !(~n <= 0); 395221#L26 call #t~ret0 := fact(~n - 1);< 395243#$Ultimate##0 ~n := #in~n; 395299#L25 assume !(~n <= 0); 395228#L26 call #t~ret0 := fact(~n - 1);< 395296#$Ultimate##0 ~n := #in~n; 395298#L25 assume ~n <= 0;#res := 1; 395297#factFINAL assume true; 395295#factEXIT >#66#return; 395294#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395293#factFINAL assume true; 395290#factEXIT >#66#return; 395288#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395287#factFINAL assume true; 395286#factEXIT >#66#return; 395267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395502#factFINAL assume true; 395503#factEXIT >#78#return; 393382#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 393380#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 393378#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 393376#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 393372#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393290#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393291#$Ultimate##0 ~n := #in~n; 393395#L25 assume !(~n <= 0); 393391#L26 call #t~ret0 := fact(~n - 1);< 393393#$Ultimate##0 ~n := #in~n; 393400#L25 assume !(~n <= 0); 393392#L26 call #t~ret0 := fact(~n - 1);< 393398#$Ultimate##0 ~n := #in~n; 393400#L25 assume !(~n <= 0); 393392#L26 call #t~ret0 := fact(~n - 1);< 393398#$Ultimate##0 ~n := #in~n; 393400#L25 assume !(~n <= 0); 393392#L26 call #t~ret0 := fact(~n - 1);< 393398#$Ultimate##0 ~n := #in~n; 393400#L25 assume !(~n <= 0); 393392#L26 call #t~ret0 := fact(~n - 1);< 393398#$Ultimate##0 ~n := #in~n; 393400#L25 assume !(~n <= 0); 393392#L26 call #t~ret0 := fact(~n - 1);< 393398#$Ultimate##0 ~n := #in~n; 393432#L25 assume ~n <= 0;#res := 1; 393429#factFINAL assume true; 393427#factEXIT >#66#return; 393423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393419#factFINAL assume true; 393418#factEXIT >#66#return; 393413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393411#factFINAL assume true; 393409#factEXIT >#66#return; 393407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393405#factFINAL assume true; 393402#factEXIT >#66#return; 393401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393399#factFINAL assume true; 393397#factEXIT >#66#return; 393396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393394#factFINAL assume true; 393390#factEXIT >#66#return; 393389#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393297#factFINAL assume true; 393289#factEXIT >#74#return; 393287#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393288#$Ultimate##0 ~n := #in~n; 393361#L25 assume ~n <= 0;#res := 1; 393358#factFINAL assume true; 393286#factEXIT >#76#return; 393196#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393285#$Ultimate##0 ~n := #in~n; 393280#L25 assume !(~n <= 0); 393214#L26 call #t~ret0 := fact(~n - 1);< 393247#$Ultimate##0 ~n := #in~n; 393355#L25 assume !(~n <= 0); 393213#L26 call #t~ret0 := fact(~n - 1);< 393251#$Ultimate##0 ~n := #in~n; 393307#L25 assume !(~n <= 0); 393220#L26 call #t~ret0 := fact(~n - 1);< 393284#$Ultimate##0 ~n := #in~n; 393371#L25 assume !(~n <= 0); 393218#L26 call #t~ret0 := fact(~n - 1);< 393262#$Ultimate##0 ~n := #in~n; 393387#L25 assume !(~n <= 0); 393219#L26 call #t~ret0 := fact(~n - 1);< 393230#$Ultimate##0 ~n := #in~n; 393381#L25 assume !(~n <= 0); 393216#L26 call #t~ret0 := fact(~n - 1);< 393375#$Ultimate##0 ~n := #in~n; 393381#L25 assume !(~n <= 0); 393216#L26 call #t~ret0 := fact(~n - 1);< 393375#$Ultimate##0 ~n := #in~n; 393379#L25 assume ~n <= 0;#res := 1; 393377#factFINAL assume true; 393374#factEXIT >#66#return; 393370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393369#factFINAL assume true; 393364#factEXIT >#66#return; 393362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393359#factFINAL assume true; 393300#factEXIT >#66#return; 393299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393298#factFINAL assume true; 393283#factEXIT >#66#return; 393279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393261#factFINAL assume true; 393250#factEXIT >#66#return; 393249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393248#factFINAL assume true; 393245#factEXIT >#66#return; 393244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393240#factFINAL assume true; 393238#factEXIT >#66#return; 393227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393457#factFINAL assume true; 394287#factEXIT >#78#return; 393197#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394282#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 394281#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394279#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 394277#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 394273#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 394269#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394267#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 394242#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 394264#$Ultimate##0 ~n := #in~n; 394276#L25 assume !(~n <= 0); 394271#L26 call #t~ret0 := fact(~n - 1);< 394272#$Ultimate##0 ~n := #in~n; 394278#L25 assume ~n <= 0;#res := 1; 394274#factFINAL assume true; 394270#factEXIT >#66#return; 394268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394266#factFINAL assume true; 394263#factEXIT >#68#return; 394241#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393138#$Ultimate##0 ~n := #in~n; 394261#L25 assume ~n <= 0;#res := 1; 394260#factFINAL assume true; 394233#factEXIT >#70#return; 394200#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 394201#$Ultimate##0 ~n := #in~n; 394213#L25 assume !(~n <= 0); 393085#L26 call #t~ret0 := fact(~n - 1);< 394211#$Ultimate##0 ~n := #in~n; 394216#L25 assume ~n <= 0;#res := 1; 394215#factFINAL assume true; 394210#factEXIT >#66#return; 394208#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394206#factFINAL assume true; 394199#factEXIT >#72#return; 394198#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394196#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 394194#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394193#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394192#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 394171#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 394188#$Ultimate##0 ~n := #in~n; 394230#L25 assume !(~n <= 0); 393768#L26 call #t~ret0 := fact(~n - 1);< 393932#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394187#factFINAL assume true; 394135#factEXIT >#68#return; 393962#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394185#$Ultimate##0 ~n := #in~n; 394283#L25 assume !(~n <= 0); 393749#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394187#factFINAL assume true; 394135#factEXIT >#70#return; 394121#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 394134#$Ultimate##0 ~n := #in~n; 394232#L25 assume ~n <= 0;#res := 1; 393953#factFINAL assume true; 394111#factEXIT >#72#return; 394110#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394108#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 394106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394104#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394103#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393639#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393742#$Ultimate##0 ~n := #in~n; 394054#L25 assume !(~n <= 0); 393750#L26 call #t~ret0 := fact(~n - 1);< 393932#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393955#factFINAL assume true; 393889#factEXIT >#74#return; 393643#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393718#$Ultimate##0 ~n := #in~n; 393951#L25 assume !(~n <= 0); 393757#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393741#factFINAL assume true; 393719#factEXIT >#76#return; 393724#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 394197#$Ultimate##0 ~n := #in~n; 394195#L25 assume !(~n <= 0); 393787#L26 call #t~ret0 := fact(~n - 1);< 393793#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393741#factFINAL assume true; 393719#factEXIT >#78#return; 393733#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394214#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 394212#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394209#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394012#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393648#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393717#$Ultimate##0 ~n := #in~n; 394257#L25 assume !(~n <= 0); 393771#L26 call #t~ret0 := fact(~n - 1);< 393886#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393783#factFINAL assume true; 393745#factEXIT >#66#return; 393740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393716#factFINAL assume true; 393710#factEXIT >#74#return; 393647#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393718#$Ultimate##0 ~n := #in~n; 393951#L25 assume !(~n <= 0); 393757#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393741#factFINAL assume true; 393719#factEXIT >#76#return; 393727#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393743#$Ultimate##0 ~n := #in~n; 394203#L25 assume !(~n <= 0); 393788#L26 call #t~ret0 := fact(~n - 1);< 393855#$Ultimate##0 ~n := #in~n; 394015#L25 assume !(~n <= 0); 393916#L26 call #t~ret0 := fact(~n - 1);< 393918#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393955#factFINAL assume true; 393889#factEXIT >#78#return; 393887#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 393851#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 393800#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 393798#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 393782#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393657#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393717#$Ultimate##0 ~n := #in~n; 394257#L25 assume !(~n <= 0); 393771#L26 call #t~ret0 := fact(~n - 1);< 393886#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393783#factFINAL assume true; 393745#factEXIT >#66#return; 393772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393939#factFINAL assume true; 393841#factEXIT >#66#return; 393795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393778#factFINAL assume true; 393744#factEXIT >#74#return; 393655#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393718#$Ultimate##0 ~n := #in~n; 393951#L25 assume !(~n <= 0); 393757#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393741#factFINAL assume true; 393719#factEXIT >#76#return; 393713#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393715#$Ultimate##0 ~n := #in~n; 394231#L25 assume !(~n <= 0); 393748#L26 call #t~ret0 := fact(~n - 1);< 393776#$Ultimate##0 ~n := #in~n; 394693#L25 assume !(~n <= 0); 393753#L26 call #t~ret0 := fact(~n - 1);< 393812#$Ultimate##0 ~n := #in~n; 393933#L25 assume !(~n <= 0); 393806#L26 call #t~ret0 := fact(~n - 1);< 393919#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393783#factFINAL assume true; 393745#factEXIT >#66#return; 393740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393716#factFINAL assume true; 393710#factEXIT >#78#return; 393709#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 393708#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 393707#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 393706#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 393705#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393187#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393057#$Ultimate##0 ~n := #in~n; 394842#L25 assume !(~n <= 0); 393466#L26 call #t~ret0 := fact(~n - 1);< 393510#$Ultimate##0 ~n := #in~n; 394920#L25 assume !(~n <= 0); 393461#L26 call #t~ret0 := fact(~n - 1);< 393513#$Ultimate##0 ~n := #in~n; 393556#L25 assume !(~n <= 0); 393463#L26 call #t~ret0 := fact(~n - 1);< 393543#$Ultimate##0 ~n := #in~n; 393556#L25 assume !(~n <= 0); 393463#L26 call #t~ret0 := fact(~n - 1);< 393543#$Ultimate##0 ~n := #in~n; 393556#L25 assume !(~n <= 0); 393463#L26 call #t~ret0 := fact(~n - 1);< 393543#$Ultimate##0 ~n := #in~n; 393554#L25 assume ~n <= 0;#res := 1; 393552#factFINAL assume true; 393541#factEXIT >#66#return; 393540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393534#factFINAL assume true; 393529#factEXIT >#66#return; 393526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393524#factFINAL assume true; 393517#factEXIT >#66#return; 393514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393512#factFINAL assume true; 393503#factEXIT >#66#return; 393506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393515#factFINAL assume true; 393508#factEXIT >#66#return; 393502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393498#factFINAL assume true; 393494#factEXIT >#74#return; 393487#L30-6 [2023-02-17 09:42:29,563 INFO L750 eck$LassoCheckResult]: Loop: 393487#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393490#$Ultimate##0 ~n := #in~n; 393489#L25 assume !(~n <= 0); 393482#L26 call #t~ret0 := fact(~n - 1);< 393485#$Ultimate##0 ~n := #in~n; 393486#L25 assume ~n <= 0;#res := 1; 393696#factFINAL assume true; 393695#factEXIT >#66#return; 393694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393692#factFINAL assume true; 393690#factEXIT >#76#return; 393492#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393551#$Ultimate##0 ~n := #in~n; 393549#L25 assume !(~n <= 0); 393504#L26 call #t~ret0 := fact(~n - 1);< 393547#$Ultimate##0 ~n := #in~n; 393537#L25 assume !(~n <= 0); 393519#L26 call #t~ret0 := fact(~n - 1);< 393522#$Ultimate##0 ~n := #in~n; 393536#L25 assume !(~n <= 0); 393530#L26 call #t~ret0 := fact(~n - 1);< 393532#$Ultimate##0 ~n := #in~n; 393559#L25 assume !(~n <= 0); 393542#L26 call #t~ret0 := fact(~n - 1);< 393544#$Ultimate##0 ~n := #in~n; 393554#L25 assume ~n <= 0;#res := 1; 393552#factFINAL assume true; 393541#factEXIT >#66#return; 393540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393534#factFINAL assume true; 393529#factEXIT >#66#return; 393526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393524#factFINAL assume true; 393517#factEXIT >#66#return; 393514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393512#factFINAL assume true; 393503#factEXIT >#66#return; 393501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393496#factFINAL assume true; 393491#factEXIT >#78#return; 393194#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 393120#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 393121#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 393148#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 395508#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 393160#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 393161#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 393123#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393124#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393097#$Ultimate##0 ~n := #in~n; 395516#L25 assume !(~n <= 0); 395513#L26 call #t~ret0 := fact(~n - 1);< 395515#$Ultimate##0 ~n := #in~n; 394280#L25 assume !(~n <= 0); 395512#L26 call #t~ret0 := fact(~n - 1);< 395520#$Ultimate##0 ~n := #in~n; 394280#L25 assume !(~n <= 0); 395512#L26 call #t~ret0 := fact(~n - 1);< 395520#$Ultimate##0 ~n := #in~n; 394280#L25 assume !(~n <= 0); 395512#L26 call #t~ret0 := fact(~n - 1);< 395520#$Ultimate##0 ~n := #in~n; 394280#L25 assume !(~n <= 0); 395512#L26 call #t~ret0 := fact(~n - 1);< 395520#$Ultimate##0 ~n := #in~n; 394280#L25 assume !(~n <= 0); 395512#L26 call #t~ret0 := fact(~n - 1);< 395520#$Ultimate##0 ~n := #in~n; 394280#L25 assume !(~n <= 0); 395512#L26 call #t~ret0 := fact(~n - 1);< 395520#$Ultimate##0 ~n := #in~n; 394280#L25 assume !(~n <= 0); 395512#L26 call #t~ret0 := fact(~n - 1);< 395520#$Ultimate##0 ~n := #in~n; 395521#L25 assume ~n <= 0;#res := 1; 395540#factFINAL assume true; 395539#factEXIT >#66#return; 395538#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395537#factFINAL assume true; 395535#factEXIT >#66#return; 395534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395533#factFINAL assume true; 395532#factEXIT >#66#return; 395531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395530#factFINAL assume true; 395528#factEXIT >#66#return; 395527#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395526#factFINAL assume true; 395523#factEXIT >#66#return; 395524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395595#factFINAL assume true; 395593#factEXIT >#66#return; 395522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395519#factFINAL assume true; 395511#factEXIT >#66#return; 395514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395609#factFINAL assume true; 395601#factEXIT >#66#return; 395599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395507#factFINAL assume true; 395506#factEXIT >#68#return; 394243#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394264#$Ultimate##0 ~n := #in~n; 394276#L25 assume ~n <= 0;#res := 1; 394260#factFINAL assume true; 394233#factEXIT >#70#return; 393074#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393075#$Ultimate##0 ~n := #in~n; 395590#L25 assume !(~n <= 0); 393109#L26 call #t~ret0 := fact(~n - 1);< 395588#$Ultimate##0 ~n := #in~n; 395663#L25 assume !(~n <= 0); 393108#L26 call #t~ret0 := fact(~n - 1);< 393110#$Ultimate##0 ~n := #in~n; 395577#L25 assume !(~n <= 0); 395573#L26 call #t~ret0 := fact(~n - 1);< 395575#$Ultimate##0 ~n := #in~n; 395574#L25 assume !(~n <= 0); 395570#L26 call #t~ret0 := fact(~n - 1);< 395572#$Ultimate##0 ~n := #in~n; 395571#L25 assume !(~n <= 0); 395567#L26 call #t~ret0 := fact(~n - 1);< 395569#$Ultimate##0 ~n := #in~n; 395568#L25 assume !(~n <= 0); 395564#L26 call #t~ret0 := fact(~n - 1);< 395566#$Ultimate##0 ~n := #in~n; 395565#L25 assume !(~n <= 0); 393083#L26 call #t~ret0 := fact(~n - 1);< 395563#$Ultimate##0 ~n := #in~n; 395561#L25 assume !(~n <= 0); 393064#L26 call #t~ret0 := fact(~n - 1);< 395555#$Ultimate##0 ~n := #in~n; 395560#L25 assume ~n <= 0;#res := 1; 395553#factFINAL assume true; 393060#factEXIT >#66#return; 393066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393079#factFINAL assume true; 393086#factEXIT >#66#return; 395551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395650#factFINAL assume true; 395642#factEXIT >#66#return; 395640#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395638#factFINAL assume true; 395622#factEXIT >#66#return; 395620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395617#factFINAL assume true; 395611#factEXIT >#66#return; 395610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395607#factFINAL assume true; 395602#factEXIT >#66#return; 395600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395598#factFINAL assume true; 395596#factEXIT >#66#return; 395587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395594#factFINAL assume true; 395586#factEXIT >#66#return; 395585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 395583#factFINAL assume true; 395582#factEXIT >#72#return; 393113#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 393114#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 394809#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394808#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394807#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393876#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393899#$Ultimate##0 ~n := #in~n; 393888#L25 assume !(~n <= 0); 393759#L26 call #t~ret0 := fact(~n - 1);< 393886#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394349#factFINAL assume true; 394341#factEXIT >#68#return; 393987#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394185#$Ultimate##0 ~n := #in~n; 394283#L25 assume !(~n <= 0); 393749#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394187#factFINAL assume true; 394135#factEXIT >#70#return; 393834#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 394186#$Ultimate##0 ~n := #in~n; 393958#L25 assume !(~n <= 0); 393789#L26 call #t~ret0 := fact(~n - 1);< 393793#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394367#factFINAL assume true; 394366#factEXIT >#72#return; 394128#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394812#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 394811#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394810#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394799#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393881#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393899#$Ultimate##0 ~n := #in~n; 393888#L25 assume !(~n <= 0); 393759#L26 call #t~ret0 := fact(~n - 1);< 393886#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393809#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394349#factFINAL assume true; 394341#factEXIT >#68#return; 393989#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 394185#$Ultimate##0 ~n := #in~n; 394283#L25 assume !(~n <= 0); 393749#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 394255#L25 assume !(~n <= 0); 393747#L26 call #t~ret0 := fact(~n - 1);< 393946#$Ultimate##0 ~n := #in~n; 394014#L25 assume !(~n <= 0); 393752#L26 call #t~ret0 := fact(~n - 1);< 393917#$Ultimate##0 ~n := #in~n; 393933#L25 assume !(~n <= 0); 393806#L26 call #t~ret0 := fact(~n - 1);< 393919#$Ultimate##0 ~n := #in~n; 394015#L25 assume !(~n <= 0); 393916#L26 call #t~ret0 := fact(~n - 1);< 393918#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393783#factFINAL assume true; 393745#factEXIT >#66#return; 393772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393939#factFINAL assume true; 393841#factEXIT >#66#return; 393846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393959#factFINAL assume true; 393900#factEXIT >#66#return; 393907#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 394344#factFINAL assume true; 394342#factEXIT >#70#return; 394113#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 394134#$Ultimate##0 ~n := #in~n; 394232#L25 assume ~n <= 0;#res := 1; 393953#factFINAL assume true; 394111#factEXIT >#72#return; 394126#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394788#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 394785#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394784#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394254#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393631#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393717#$Ultimate##0 ~n := #in~n; 394257#L25 assume !(~n <= 0); 393771#L26 call #t~ret0 := fact(~n - 1);< 393886#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393783#factFINAL assume true; 393745#factEXIT >#66#return; 393740#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393716#factFINAL assume true; 393710#factEXIT >#74#return; 393638#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393718#$Ultimate##0 ~n := #in~n; 393951#L25 assume !(~n <= 0); 393757#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393741#factFINAL assume true; 393719#factEXIT >#76#return; 393725#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393743#$Ultimate##0 ~n := #in~n; 394203#L25 assume !(~n <= 0); 393788#L26 call #t~ret0 := fact(~n - 1);< 393855#$Ultimate##0 ~n := #in~n; 393934#L25 assume ~n <= 0;#res := 1; 393815#factFINAL assume true; 393786#factEXIT >#66#return; 393777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393741#factFINAL assume true; 393719#factEXIT >#78#return; 393735#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394320#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 394318#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394316#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394314#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393668#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393717#$Ultimate##0 ~n := #in~n; 394257#L25 assume !(~n <= 0); 393771#L26 call #t~ret0 := fact(~n - 1);< 393886#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393783#factFINAL assume true; 393745#factEXIT >#66#return; 393772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393939#factFINAL assume true; 393841#factEXIT >#66#return; 393795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393778#factFINAL assume true; 393744#factEXIT >#74#return; 393614#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393718#$Ultimate##0 ~n := #in~n; 393951#L25 assume !(~n <= 0); 393757#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 394255#L25 assume !(~n <= 0); 393747#L26 call #t~ret0 := fact(~n - 1);< 393946#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393955#factFINAL assume true; 393889#factEXIT >#76#return; 393722#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393743#$Ultimate##0 ~n := #in~n; 394203#L25 assume !(~n <= 0); 393788#L26 call #t~ret0 := fact(~n - 1);< 393855#$Ultimate##0 ~n := #in~n; 394015#L25 assume !(~n <= 0); 393916#L26 call #t~ret0 := fact(~n - 1);< 393918#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393955#factFINAL assume true; 393889#factEXIT >#78#return; 393896#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 394312#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 394310#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 394308#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 394306#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393641#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393717#$Ultimate##0 ~n := #in~n; 394257#L25 assume !(~n <= 0); 393771#L26 call #t~ret0 := fact(~n - 1);< 393886#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394228#L25 assume !(~n <= 0); 393766#L26 call #t~ret0 := fact(~n - 1);< 394051#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393783#factFINAL assume true; 393745#factEXIT >#66#return; 393772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393939#factFINAL assume true; 393841#factEXIT >#66#return; 393795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393778#factFINAL assume true; 393744#factEXIT >#74#return; 393664#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 393718#$Ultimate##0 ~n := #in~n; 393951#L25 assume !(~n <= 0); 393757#L26 call #t~ret0 := fact(~n - 1);< 393912#$Ultimate##0 ~n := #in~n; 394255#L25 assume !(~n <= 0); 393747#L26 call #t~ret0 := fact(~n - 1);< 393946#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393955#factFINAL assume true; 393889#factEXIT >#76#return; 393728#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 393743#$Ultimate##0 ~n := #in~n; 394203#L25 assume !(~n <= 0); 393788#L26 call #t~ret0 := fact(~n - 1);< 393855#$Ultimate##0 ~n := #in~n; 394015#L25 assume !(~n <= 0); 393916#L26 call #t~ret0 := fact(~n - 1);< 393918#$Ultimate##0 ~n := #in~n; 394016#L25 assume ~n <= 0;#res := 1; 394013#factFINAL assume true; 393915#factEXIT >#66#return; 393913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393854#factFINAL assume true; 393804#factEXIT >#66#return; 393808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393955#factFINAL assume true; 393889#factEXIT >#78#return; 393701#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 393702#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 393697#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 393698#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 393566#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 393192#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 393495#$Ultimate##0 ~n := #in~n; 393557#L25 assume !(~n <= 0); 393462#L26 call #t~ret0 := fact(~n - 1);< 393511#$Ultimate##0 ~n := #in~n; 393556#L25 assume !(~n <= 0); 393463#L26 call #t~ret0 := fact(~n - 1);< 393543#$Ultimate##0 ~n := #in~n; 393556#L25 assume !(~n <= 0); 393463#L26 call #t~ret0 := fact(~n - 1);< 393543#$Ultimate##0 ~n := #in~n; 393556#L25 assume !(~n <= 0); 393463#L26 call #t~ret0 := fact(~n - 1);< 393543#$Ultimate##0 ~n := #in~n; 393554#L25 assume ~n <= 0;#res := 1; 393552#factFINAL assume true; 393541#factEXIT >#66#return; 393540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393534#factFINAL assume true; 393529#factEXIT >#66#return; 393526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393524#factFINAL assume true; 393517#factEXIT >#66#return; 393514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393512#factFINAL assume true; 393503#factEXIT >#66#return; 393501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 393496#factFINAL assume true; 393491#factEXIT >#74#return; 393487#L30-6 [2023-02-17 09:42:29,564 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:29,564 INFO L85 PathProgramCache]: Analyzing trace with hash 1162121254, now seen corresponding path program 31 times [2023-02-17 09:42:29,564 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:29,564 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [965298100] [2023-02-17 09:42:29,564 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:29,564 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:29,643 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:29,643 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [211621312] [2023-02-17 09:42:29,643 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:29,643 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:29,644 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:29,645 INFO L229 MonitoredProcess]: Starting monitored process 211 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:29,646 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (211)] Waiting until timeout for monitored process [2023-02-17 09:42:30,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:30,273 INFO L263 TraceCheckSpWp]: Trace formula consists of 1312 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:42:30,277 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:30,330 INFO L134 CoverageAnalysis]: Checked inductivity of 20897 backedges. 10237 proven. 24 refuted. 0 times theorem prover too weak. 10636 trivial. 0 not checked. [2023-02-17 09:42:30,330 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:30,475 INFO L134 CoverageAnalysis]: Checked inductivity of 20897 backedges. 693 proven. 981 refuted. 0 times theorem prover too weak. 19223 trivial. 0 not checked. [2023-02-17 09:42:30,476 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:30,476 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [965298100] [2023-02-17 09:42:30,476 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:30,476 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [211621312] [2023-02-17 09:42:30,476 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [211621312] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:30,476 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:30,476 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 24 [2023-02-17 09:42:30,476 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [165491022] [2023-02-17 09:42:30,477 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:30,477 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:30,477 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:30,478 INFO L85 PathProgramCache]: Analyzing trace with hash -579039937, now seen corresponding path program 25 times [2023-02-17 09:42:30,478 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:30,478 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [488659768] [2023-02-17 09:42:30,478 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:30,478 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:30,492 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:30,492 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [642750078] [2023-02-17 09:42:30,492 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:30,493 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:30,493 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:30,496 INFO L229 MonitoredProcess]: Starting monitored process 212 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:30,496 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (212)] Waiting until timeout for monitored process [2023-02-17 09:42:31,091 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:31,094 INFO L263 TraceCheckSpWp]: Trace formula consists of 1049 conjuncts, 28 conjunts are in the unsatisfiable core [2023-02-17 09:42:31,097 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:31,178 INFO L134 CoverageAnalysis]: Checked inductivity of 15319 backedges. 7871 proven. 495 refuted. 0 times theorem prover too weak. 6953 trivial. 0 not checked. [2023-02-17 09:42:31,178 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:31,485 INFO L134 CoverageAnalysis]: Checked inductivity of 15319 backedges. 623 proven. 2845 refuted. 0 times theorem prover too weak. 11851 trivial. 0 not checked. [2023-02-17 09:42:31,485 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:31,485 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [488659768] [2023-02-17 09:42:31,485 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:31,485 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [642750078] [2023-02-17 09:42:31,485 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [642750078] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:31,486 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:31,486 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 27] total 32 [2023-02-17 09:42:31,486 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2128832670] [2023-02-17 09:42:31,486 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:31,486 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:31,486 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:31,486 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2023-02-17 09:42:31,487 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=150, Invalid=842, Unknown=0, NotChecked=0, Total=992 [2023-02-17 09:42:31,487 INFO L87 Difference]: Start difference. First operand 2699 states and 5773 transitions. cyclomatic complexity: 3099 Second operand has 32 states, 28 states have (on average 3.0714285714285716) internal successors, (86), 32 states have internal predecessors, (86), 20 states have call successors, (36), 2 states have call predecessors, (36), 13 states have return successors, (43), 14 states have call predecessors, (43), 20 states have call successors, (43) [2023-02-17 09:42:33,106 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:33,106 INFO L93 Difference]: Finished difference Result 3803 states and 8312 transitions. [2023-02-17 09:42:33,106 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3803 states and 8312 transitions. [2023-02-17 09:42:33,130 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 1348 [2023-02-17 09:42:33,161 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3803 states to 3776 states and 8281 transitions. [2023-02-17 09:42:33,161 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 582 [2023-02-17 09:42:33,161 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 582 [2023-02-17 09:42:33,161 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3776 states and 8281 transitions. [2023-02-17 09:42:33,162 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:33,162 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3776 states and 8281 transitions. [2023-02-17 09:42:33,163 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3776 states and 8281 transitions. [2023-02-17 09:42:33,227 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3776 to 3219. [2023-02-17 09:42:33,230 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3219 states, 1859 states have (on average 1.0532544378698225) internal successors, (1958), 1843 states have internal predecessors, (1958), 1065 states have call successors, (1123), 368 states have call predecessors, (1123), 295 states have return successors, (3919), 1007 states have call predecessors, (3919), 1065 states have call successors, (3919) [2023-02-17 09:42:33,243 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3219 states to 3219 states and 7000 transitions. [2023-02-17 09:42:33,244 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3219 states and 7000 transitions. [2023-02-17 09:42:33,244 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2023-02-17 09:42:33,245 INFO L428 stractBuchiCegarLoop]: Abstraction has 3219 states and 7000 transitions. [2023-02-17 09:42:33,245 INFO L335 stractBuchiCegarLoop]: ======== Iteration 55 ============ [2023-02-17 09:42:33,245 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3219 states and 7000 transitions. [2023-02-17 09:42:33,258 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 1120 [2023-02-17 09:42:33,258 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:33,258 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:33,260 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [94, 94, 60, 60, 60, 60, 34, 12, 11, 9, 9, 9, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:33,260 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [69, 69, 48, 48, 48, 48, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:33,261 INFO L748 eck$LassoCheckResult]: Stem: 406209#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 406125#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 406126#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 406149#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 406141#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 406142#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406957#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406953#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406954#$Ultimate##0 ~n := #in~n; 406958#L25 assume ~n <= 0;#res := 1; 406956#factFINAL assume true; 406952#factEXIT >#68#return; 406948#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406949#$Ultimate##0 ~n := #in~n; 406955#L25 assume ~n <= 0;#res := 1; 406951#factFINAL assume true; 406947#factEXIT >#70#return; 406944#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 406945#$Ultimate##0 ~n := #in~n; 406950#L25 assume ~n <= 0;#res := 1; 406946#factFINAL assume true; 406943#factEXIT >#72#return; 406942#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406941#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 406940#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 406937#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406935#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406925#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406926#$Ultimate##0 ~n := #in~n; 406934#L25 assume !(~n <= 0); 406928#L26 call #t~ret0 := fact(~n - 1);< 406931#$Ultimate##0 ~n := #in~n; 406939#L25 assume ~n <= 0;#res := 1; 406936#factFINAL assume true; 406927#factEXIT >#66#return; 406930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406933#factFINAL assume true; 406924#factEXIT >#74#return; 406919#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406920#$Ultimate##0 ~n := #in~n; 406932#L25 assume ~n <= 0;#res := 1; 406923#factFINAL assume true; 406918#factEXIT >#76#return; 406912#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 406913#$Ultimate##0 ~n := #in~n; 406938#L25 assume !(~n <= 0); 406929#L26 call #t~ret0 := fact(~n - 1);< 406931#$Ultimate##0 ~n := #in~n; 406939#L25 assume ~n <= 0;#res := 1; 406936#factFINAL assume true; 406927#factEXIT >#66#return; 406922#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406917#factFINAL assume true; 406911#factEXIT >#78#return; 406893#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406891#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 406887#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 406886#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406884#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406851#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406853#$Ultimate##0 ~n := #in~n; 406879#L25 assume !(~n <= 0); 406865#L26 call #t~ret0 := fact(~n - 1);< 406866#$Ultimate##0 ~n := #in~n; 406878#L25 assume !(~n <= 0); 406864#L26 call #t~ret0 := fact(~n - 1);< 406876#$Ultimate##0 ~n := #in~n; 406909#L25 assume ~n <= 0;#res := 1; 406908#factFINAL assume true; 406904#factEXIT >#66#return; 406902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406880#factFINAL assume true; 406872#factEXIT >#66#return; 406875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406900#factFINAL assume true; 406892#factEXIT >#74#return; 406889#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406890#$Ultimate##0 ~n := #in~n; 406903#L25 assume ~n <= 0;#res := 1; 406901#factFINAL assume true; 406888#factEXIT >#76#return; 406881#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 406885#$Ultimate##0 ~n := #in~n; 406883#L25 assume !(~n <= 0); 406873#L26 call #t~ret0 := fact(~n - 1);< 406882#$Ultimate##0 ~n := #in~n; 406907#L25 assume !(~n <= 0); 406905#L26 call #t~ret0 := fact(~n - 1);< 406906#$Ultimate##0 ~n := #in~n; 406909#L25 assume ~n <= 0;#res := 1; 406908#factFINAL assume true; 406904#factEXIT >#66#return; 406902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406880#factFINAL assume true; 406872#factEXIT >#66#return; 406874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406899#factFINAL assume true; 406898#factEXIT >#78#return; 406896#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406894#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 406867#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 406860#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406857#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406852#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406853#$Ultimate##0 ~n := #in~n; 406879#L25 assume !(~n <= 0); 406865#L26 call #t~ret0 := fact(~n - 1);< 406866#$Ultimate##0 ~n := #in~n; 406878#L25 assume !(~n <= 0); 406864#L26 call #t~ret0 := fact(~n - 1);< 406876#$Ultimate##0 ~n := #in~n; 406878#L25 assume !(~n <= 0); 406864#L26 call #t~ret0 := fact(~n - 1);< 406876#$Ultimate##0 ~n := #in~n; 406909#L25 assume ~n <= 0;#res := 1; 406908#factFINAL assume true; 406904#factEXIT >#66#return; 406902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406880#factFINAL assume true; 406872#factEXIT >#66#return; 406871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406870#factFINAL assume true; 406863#factEXIT >#66#return; 406859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406856#factFINAL assume true; 406850#factEXIT >#74#return; 406845#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406846#$Ultimate##0 ~n := #in~n; 406855#L25 assume ~n <= 0;#res := 1; 406849#factFINAL assume true; 406844#factEXIT >#76#return; 406814#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 406830#$Ultimate##0 ~n := #in~n; 406826#L25 assume !(~n <= 0); 406790#L26 call #t~ret0 := fact(~n - 1);< 406811#$Ultimate##0 ~n := #in~n; 406840#L25 assume !(~n <= 0); 406793#L26 call #t~ret0 := fact(~n - 1);< 406798#$Ultimate##0 ~n := #in~n; 406842#L25 assume !(~n <= 0); 406792#L26 call #t~ret0 := fact(~n - 1);< 406837#$Ultimate##0 ~n := #in~n; 406841#L25 assume ~n <= 0;#res := 1; 406839#factFINAL assume true; 406836#factEXIT >#66#return; 406835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406833#factFINAL assume true; 406829#factEXIT >#66#return; 406820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406813#factFINAL assume true; 406810#factEXIT >#66#return; 406797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406971#factFINAL assume true; 406965#factEXIT >#78#return; 406964#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406963#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 406962#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 406961#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406960#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406537#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406784#$Ultimate##0 ~n := #in~n; 406807#L25 assume !(~n <= 0); 406794#L26 call #t~ret0 := fact(~n - 1);< 406798#$Ultimate##0 ~n := #in~n; 406842#L25 assume !(~n <= 0); 406792#L26 call #t~ret0 := fact(~n - 1);< 406837#$Ultimate##0 ~n := #in~n; 406842#L25 assume !(~n <= 0); 406792#L26 call #t~ret0 := fact(~n - 1);< 406837#$Ultimate##0 ~n := #in~n; 406842#L25 assume !(~n <= 0); 406792#L26 call #t~ret0 := fact(~n - 1);< 406837#$Ultimate##0 ~n := #in~n; 406841#L25 assume ~n <= 0;#res := 1; 406839#factFINAL assume true; 406836#factEXIT >#66#return; 406835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406833#factFINAL assume true; 406829#factEXIT >#66#return; 406820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406813#factFINAL assume true; 406810#factEXIT >#66#return; 406806#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406802#factFINAL assume true; 406789#factEXIT >#66#return; 406787#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406785#factFINAL assume true; 406782#factEXIT >#74#return; 406735#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406967#$Ultimate##0 ~n := #in~n; 407206#L25 assume ~n <= 0;#res := 1; 407205#factFINAL assume true; 407203#factEXIT >#76#return; 406487#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407173#$Ultimate##0 ~n := #in~n; 407171#L25 assume !(~n <= 0); 407073#L26 call #t~ret0 := fact(~n - 1);< 407170#$Ultimate##0 ~n := #in~n; 407195#L25 assume !(~n <= 0); 407070#L26 call #t~ret0 := fact(~n - 1);< 407100#$Ultimate##0 ~n := #in~n; 407192#L25 assume !(~n <= 0); 407076#L26 call #t~ret0 := fact(~n - 1);< 407187#$Ultimate##0 ~n := #in~n; 407196#L25 assume ~n <= 0;#res := 1; 407194#factFINAL assume true; 407186#factEXIT >#66#return; 407185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407183#factFINAL assume true; 407180#factEXIT >#66#return; 407179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407177#factFINAL assume true; 407174#factEXIT >#66#return; 407162#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 409306#factFINAL assume true; 409303#factEXIT >#78#return; 406484#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406482#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 406481#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 406409#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406355#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406350#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406351#$Ultimate##0 ~n := #in~n; 406367#L25 assume !(~n <= 0); 406362#L26 call #t~ret0 := fact(~n - 1);< 406363#$Ultimate##0 ~n := #in~n; 406401#L25 assume !(~n <= 0); 406361#L26 call #t~ret0 := fact(~n - 1);< 406372#$Ultimate##0 ~n := #in~n; 406401#L25 assume !(~n <= 0); 406361#L26 call #t~ret0 := fact(~n - 1);< 406372#$Ultimate##0 ~n := #in~n; 406401#L25 assume !(~n <= 0); 406361#L26 call #t~ret0 := fact(~n - 1);< 406372#$Ultimate##0 ~n := #in~n; 406401#L25 assume !(~n <= 0); 406361#L26 call #t~ret0 := fact(~n - 1);< 406372#$Ultimate##0 ~n := #in~n; 406401#L25 assume !(~n <= 0); 406361#L26 call #t~ret0 := fact(~n - 1);< 406372#$Ultimate##0 ~n := #in~n; 406401#L25 assume !(~n <= 0); 406361#L26 call #t~ret0 := fact(~n - 1);< 406372#$Ultimate##0 ~n := #in~n; 406416#L25 assume ~n <= 0;#res := 1; 406414#factFINAL assume true; 406411#factEXIT >#66#return; 406400#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406399#factFINAL assume true; 406397#factEXIT >#66#return; 406395#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406394#factFINAL assume true; 406392#factEXIT >#66#return; 406390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406388#factFINAL assume true; 406387#factEXIT >#66#return; 406386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406383#factFINAL assume true; 406380#factEXIT >#66#return; 406376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406375#factFINAL assume true; 406371#factEXIT >#66#return; 406368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406366#factFINAL assume true; 406360#factEXIT >#66#return; 406358#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406354#factFINAL assume true; 406349#factEXIT >#74#return; 406345#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406346#$Ultimate##0 ~n := #in~n; 406412#L25 assume ~n <= 0;#res := 1; 406408#factFINAL assume true; 406344#factEXIT >#76#return; 406318#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 406339#$Ultimate##0 ~n := #in~n; 406335#L25 assume !(~n <= 0); 406306#L26 call #t~ret0 := fact(~n - 1);< 406319#$Ultimate##0 ~n := #in~n; 406342#L25 assume !(~n <= 0); 406303#L26 call #t~ret0 := fact(~n - 1);< 406328#$Ultimate##0 ~n := #in~n; 406428#L25 assume !(~n <= 0); 406308#L26 call #t~ret0 := fact(~n - 1);< 406337#$Ultimate##0 ~n := #in~n; 406365#L25 assume !(~n <= 0); 406302#L26 call #t~ret0 := fact(~n - 1);< 406348#$Ultimate##0 ~n := #in~n; 406410#L25 assume !(~n <= 0); 406299#L26 call #t~ret0 := fact(~n - 1);< 406341#$Ultimate##0 ~n := #in~n; 406417#L25 assume !(~n <= 0); 406298#L26 call #t~ret0 := fact(~n - 1);< 406315#$Ultimate##0 ~n := #in~n; 406393#L25 assume !(~n <= 0); 406301#L26 call #t~ret0 := fact(~n - 1);< 406385#$Ultimate##0 ~n := #in~n; 406391#L25 assume ~n <= 0;#res := 1; 406389#factFINAL assume true; 406384#factEXIT >#66#return; 406382#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406381#factFINAL assume true; 406370#factEXIT >#66#return; 406364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406359#factFINAL assume true; 406357#factEXIT >#66#return; 406353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406352#factFINAL assume true; 406347#factEXIT >#66#return; 406343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406340#factFINAL assume true; 406336#factEXIT >#66#return; 406331#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406329#factFINAL assume true; 406326#factEXIT >#66#return; 406325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406324#factFINAL assume true; 406323#factEXIT >#66#return; 406313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406526#factFINAL assume true; 406494#factEXIT >#78#return; 406280#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406279#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 406278#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 406277#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 406276#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 406275#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 406274#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406273#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406257#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406269#$Ultimate##0 ~n := #in~n; 406272#L25 assume !(~n <= 0); 406564#L26 call #t~ret0 := fact(~n - 1);< 406627#$Ultimate##0 ~n := #in~n; 408213#L25 assume ~n <= 0;#res := 1; 408212#factFINAL assume true; 408208#factEXIT >#66#return; 408206#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408205#factFINAL assume true; 408204#factEXIT >#68#return; 406262#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406193#$Ultimate##0 ~n := #in~n; 406271#L25 assume ~n <= 0;#res := 1; 406270#factFINAL assume true; 406250#factEXIT >#70#return; 406267#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 408202#$Ultimate##0 ~n := #in~n; 408282#L25 assume !(~n <= 0); 406132#L26 call #t~ret0 := fact(~n - 1);< 408211#$Ultimate##0 ~n := #in~n; 408215#L25 assume ~n <= 0;#res := 1; 408214#factFINAL assume true; 408210#factEXIT >#66#return; 408209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408207#factFINAL assume true; 408201#factEXIT >#72#return; 408199#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 408198#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 408197#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 408195#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 408194#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 408079#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 408193#$Ultimate##0 ~n := #in~n; 408360#L25 assume !(~n <= 0); 407693#L26 call #t~ret0 := fact(~n - 1);< 408187#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407718#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408192#factFINAL assume true; 408038#factEXIT >#68#return; 408092#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 408135#$Ultimate##0 ~n := #in~n; 408359#L25 assume !(~n <= 0); 407704#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407718#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408192#factFINAL assume true; 408038#factEXIT >#70#return; 407971#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 408025#$Ultimate##0 ~n := #in~n; 408036#L25 assume ~n <= 0;#res := 1; 407806#factFINAL assume true; 407949#factEXIT >#72#return; 408014#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 409223#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 409222#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 409221#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 409220#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407501#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407813#$Ultimate##0 ~n := #in~n; 408191#L25 assume !(~n <= 0); 407687#L26 call #t~ret0 := fact(~n - 1);< 408187#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407888#factFINAL assume true; 407849#factEXIT >#74#return; 407514#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406207#$Ultimate##0 ~n := #in~n; 408677#L25 assume !(~n <= 0); 407694#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407675#factFINAL assume true; 407635#factEXIT >#76#return; 407646#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407676#$Ultimate##0 ~n := #in~n; 409230#L25 assume !(~n <= 0); 407714#L26 call #t~ret0 := fact(~n - 1);< 407720#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407675#factFINAL assume true; 407635#factEXIT >#78#return; 406129#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406130#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 409251#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 409250#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 409249#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407562#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407633#$Ultimate##0 ~n := #in~n; 409262#L25 assume !(~n <= 0); 407690#L26 call #t~ret0 := fact(~n - 1);< 407747#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407632#factFINAL assume true; 407478#factEXIT >#74#return; 407569#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406207#$Ultimate##0 ~n := #in~n; 408677#L25 assume !(~n <= 0); 407694#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407675#factFINAL assume true; 407635#factEXIT >#76#return; 407651#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407807#$Ultimate##0 ~n := #in~n; 407754#L25 assume !(~n <= 0); 407715#L26 call #t~ret0 := fact(~n - 1);< 407748#$Ultimate##0 ~n := #in~n; 409258#L25 assume !(~n <= 0); 407801#L26 call #t~ret0 := fact(~n - 1);< 407804#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407888#factFINAL assume true; 407849#factEXIT >#78#return; 407860#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 406151#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 406152#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 409257#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 407817#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407577#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407633#$Ultimate##0 ~n := #in~n; 409262#L25 assume !(~n <= 0); 407690#L26 call #t~ret0 := fact(~n - 1);< 407747#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407835#factFINAL assume true; 407825#factEXIT >#66#return; 407824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407812#factFINAL assume true; 407756#factEXIT >#74#return; 407572#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406207#$Ultimate##0 ~n := #in~n; 408677#L25 assume !(~n <= 0); 407694#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407675#factFINAL assume true; 407635#factEXIT >#76#return; 407574#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407631#$Ultimate##0 ~n := #in~n; 408200#L25 assume !(~n <= 0); 407699#L26 call #t~ret0 := fact(~n - 1);< 407709#$Ultimate##0 ~n := #in~n; 409255#L25 assume !(~n <= 0); 407698#L26 call #t~ret0 := fact(~n - 1);< 407734#$Ultimate##0 ~n := #in~n; 407822#L25 assume !(~n <= 0); 407727#L26 call #t~ret0 := fact(~n - 1);< 407802#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407632#factFINAL assume true; 407478#factEXIT >#78#return; 407477#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 407476#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 407475#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 407474#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 407473#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406662#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407408#$Ultimate##0 ~n := #in~n; 407925#L25 assume !(~n <= 0); 406197#L26 call #t~ret0 := fact(~n - 1);< 406196#$Ultimate##0 ~n := #in~n; 406198#L25 assume !(~n <= 0); 407272#L26 call #t~ret0 := fact(~n - 1);< 407426#$Ultimate##0 ~n := #in~n; 407459#L25 assume !(~n <= 0); 407279#L26 call #t~ret0 := fact(~n - 1);< 407454#$Ultimate##0 ~n := #in~n; 407459#L25 assume !(~n <= 0); 407279#L26 call #t~ret0 := fact(~n - 1);< 407454#$Ultimate##0 ~n := #in~n; 407459#L25 assume !(~n <= 0); 407279#L26 call #t~ret0 := fact(~n - 1);< 407454#$Ultimate##0 ~n := #in~n; 407457#L25 assume ~n <= 0;#res := 1; 407456#factFINAL assume true; 407451#factEXIT >#66#return; 407450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407445#factFINAL assume true; 407440#factEXIT >#66#return; 407438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407436#factFINAL assume true; 407430#factEXIT >#66#return; 407429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407425#factFINAL assume true; 407417#factEXIT >#66#return; 407420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407427#factFINAL assume true; 407422#factEXIT >#66#return; 407416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407413#factFINAL assume true; 407409#factEXIT >#74#return; 407397#L30-6 [2023-02-17 09:42:33,261 INFO L750 eck$LassoCheckResult]: Loop: 407397#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 407402#$Ultimate##0 ~n := #in~n; 407401#L25 assume !(~n <= 0); 407392#L26 call #t~ret0 := fact(~n - 1);< 407395#$Ultimate##0 ~n := #in~n; 407396#L25 assume ~n <= 0;#res := 1; 407672#factFINAL assume true; 407469#factEXIT >#66#return; 407468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407466#factFINAL assume true; 407463#factEXIT >#76#return; 407404#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407460#$Ultimate##0 ~n := #in~n; 407455#L25 assume !(~n <= 0); 407419#L26 call #t~ret0 := fact(~n - 1);< 407449#$Ultimate##0 ~n := #in~n; 407446#L25 assume !(~n <= 0); 407432#L26 call #t~ret0 := fact(~n - 1);< 407434#$Ultimate##0 ~n := #in~n; 407448#L25 assume !(~n <= 0); 407441#L26 call #t~ret0 := fact(~n - 1);< 407444#$Ultimate##0 ~n := #in~n; 407458#L25 assume !(~n <= 0); 407452#L26 call #t~ret0 := fact(~n - 1);< 407453#$Ultimate##0 ~n := #in~n; 407457#L25 assume ~n <= 0;#res := 1; 407456#factFINAL assume true; 407451#factEXIT >#66#return; 407450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407445#factFINAL assume true; 407440#factEXIT >#66#return; 407438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407436#factFINAL assume true; 407430#factEXIT >#66#return; 407429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407425#factFINAL assume true; 407417#factEXIT >#66#return; 407415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407411#factFINAL assume true; 407403#factEXIT >#78#return; 406707#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 408346#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 408345#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 408344#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 408342#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 408340#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 406708#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 406624#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406096#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 406611#$Ultimate##0 ~n := #in~n; 406610#L25 assume !(~n <= 0); 406565#L26 call #t~ret0 := fact(~n - 1);< 406609#$Ultimate##0 ~n := #in~n; 406617#L25 assume !(~n <= 0); 406561#L26 call #t~ret0 := fact(~n - 1);< 406614#$Ultimate##0 ~n := #in~n; 406618#L25 assume ~n <= 0;#res := 1; 406615#factFINAL assume true; 406613#factEXIT >#66#return; 406612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 406608#factFINAL assume true; 406599#factEXIT >#66#return; 406600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408239#factFINAL assume true; 408232#factEXIT >#68#return; 406261#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406193#$Ultimate##0 ~n := #in~n; 406271#L25 assume ~n <= 0;#res := 1; 406270#factFINAL assume true; 406250#factEXIT >#70#return; 406266#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 408225#$Ultimate##0 ~n := #in~n; 408248#L25 assume !(~n <= 0); 406133#L26 call #t~ret0 := fact(~n - 1);< 407810#$Ultimate##0 ~n := #in~n; 407755#L25 assume !(~n <= 0); 406131#L26 call #t~ret0 := fact(~n - 1);< 406136#$Ultimate##0 ~n := #in~n; 408259#L25 assume ~n <= 0;#res := 1; 408254#factFINAL assume true; 408251#factEXIT >#66#return; 408249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408244#factFINAL assume true; 408233#factEXIT >#66#return; 408231#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408227#factFINAL assume true; 408223#factEXIT >#72#return; 408224#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 408276#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 408272#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 408268#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 408264#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407740#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 408156#$Ultimate##0 ~n := #in~n; 409254#L25 assume !(~n <= 0); 407681#L26 call #t~ret0 := fact(~n - 1);< 407747#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408159#factFINAL assume true; 408155#factEXIT >#68#return; 408058#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 408135#$Ultimate##0 ~n := #in~n; 408359#L25 assume !(~n <= 0); 407704#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 409227#L25 assume !(~n <= 0); 407685#L26 call #t~ret0 := fact(~n - 1);< 407803#$Ultimate##0 ~n := #in~n; 409226#L25 assume !(~n <= 0); 407680#L26 call #t~ret0 := fact(~n - 1);< 407823#$Ultimate##0 ~n := #in~n; 407822#L25 assume !(~n <= 0); 407727#L26 call #t~ret0 := fact(~n - 1);< 407802#$Ultimate##0 ~n := #in~n; 409258#L25 assume !(~n <= 0); 407801#L26 call #t~ret0 := fact(~n - 1);< 407804#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407835#factFINAL assume true; 407825#factEXIT >#66#return; 407830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408670#factFINAL assume true; 408363#factEXIT >#66#return; 408362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408361#factFINAL assume true; 408306#factEXIT >#70#return; 407986#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 408025#$Ultimate##0 ~n := #in~n; 408036#L25 assume ~n <= 0;#res := 1; 407806#factFINAL assume true; 407949#factEXIT >#72#return; 408020#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 408250#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 408247#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 408242#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 408230#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407746#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 408156#$Ultimate##0 ~n := #in~n; 409254#L25 assume !(~n <= 0); 407681#L26 call #t~ret0 := fact(~n - 1);< 407747#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408159#factFINAL assume true; 408155#factEXIT >#68#return; 408043#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 408135#$Ultimate##0 ~n := #in~n; 408359#L25 assume !(~n <= 0); 407704#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 409227#L25 assume !(~n <= 0); 407685#L26 call #t~ret0 := fact(~n - 1);< 407803#$Ultimate##0 ~n := #in~n; 409226#L25 assume !(~n <= 0); 407680#L26 call #t~ret0 := fact(~n - 1);< 407823#$Ultimate##0 ~n := #in~n; 407822#L25 assume !(~n <= 0); 407727#L26 call #t~ret0 := fact(~n - 1);< 407802#$Ultimate##0 ~n := #in~n; 409258#L25 assume !(~n <= 0); 407801#L26 call #t~ret0 := fact(~n - 1);< 407804#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407835#factFINAL assume true; 407825#factEXIT >#66#return; 407830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408670#factFINAL assume true; 408363#factEXIT >#66#return; 408362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 408361#factFINAL assume true; 408306#factEXIT >#70#return; 407991#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 408025#$Ultimate##0 ~n := #in~n; 408036#L25 assume ~n <= 0;#res := 1; 407806#factFINAL assume true; 407949#factEXIT >#72#return; 408022#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 408037#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 408035#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 408034#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 408033#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407489#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407633#$Ultimate##0 ~n := #in~n; 409262#L25 assume !(~n <= 0); 407690#L26 call #t~ret0 := fact(~n - 1);< 407747#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407632#factFINAL assume true; 407478#factEXIT >#74#return; 407511#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406207#$Ultimate##0 ~n := #in~n; 408677#L25 assume !(~n <= 0); 407694#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407675#factFINAL assume true; 407635#factEXIT >#76#return; 407648#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407807#$Ultimate##0 ~n := #in~n; 407754#L25 assume !(~n <= 0); 407715#L26 call #t~ret0 := fact(~n - 1);< 407748#$Ultimate##0 ~n := #in~n; 407816#L25 assume ~n <= 0;#res := 1; 407757#factFINAL assume true; 407713#factEXIT >#66#return; 407710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407675#factFINAL assume true; 407635#factEXIT >#78#return; 407658#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 407944#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 407942#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 407941#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 407940#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407583#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407633#$Ultimate##0 ~n := #in~n; 409262#L25 assume !(~n <= 0); 407690#L26 call #t~ret0 := fact(~n - 1);< 407747#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407835#factFINAL assume true; 407825#factEXIT >#66#return; 407824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407812#factFINAL assume true; 407756#factEXIT >#74#return; 407502#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406207#$Ultimate##0 ~n := #in~n; 408677#L25 assume !(~n <= 0); 407694#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 409227#L25 assume !(~n <= 0); 407685#L26 call #t~ret0 := fact(~n - 1);< 407803#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407888#factFINAL assume true; 407849#factEXIT >#76#return; 407641#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407807#$Ultimate##0 ~n := #in~n; 407754#L25 assume !(~n <= 0); 407715#L26 call #t~ret0 := fact(~n - 1);< 407748#$Ultimate##0 ~n := #in~n; 409258#L25 assume !(~n <= 0); 407801#L26 call #t~ret0 := fact(~n - 1);< 407804#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407888#factFINAL assume true; 407849#factEXIT >#78#return; 407870#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 407936#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 407934#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 407933#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 407932#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 407568#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407633#$Ultimate##0 ~n := #in~n; 409262#L25 assume !(~n <= 0); 407690#L26 call #t~ret0 := fact(~n - 1);< 407747#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 408391#L25 assume !(~n <= 0); 407696#L26 call #t~ret0 := fact(~n - 1);< 408385#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407722#factFINAL assume true; 407678#factEXIT >#66#return; 407705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407835#factFINAL assume true; 407825#factEXIT >#66#return; 407824#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407812#factFINAL assume true; 407756#factEXIT >#74#return; 407606#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 406207#$Ultimate##0 ~n := #in~n; 408677#L25 assume !(~n <= 0); 407694#L26 call #t~ret0 := fact(~n - 1);< 408196#$Ultimate##0 ~n := #in~n; 409227#L25 assume !(~n <= 0); 407685#L26 call #t~ret0 := fact(~n - 1);< 407803#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407888#factFINAL assume true; 407849#factEXIT >#76#return; 407636#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 407807#$Ultimate##0 ~n := #in~n; 407754#L25 assume !(~n <= 0); 407715#L26 call #t~ret0 := fact(~n - 1);< 407748#$Ultimate##0 ~n := #in~n; 409258#L25 assume !(~n <= 0); 407801#L26 call #t~ret0 := fact(~n - 1);< 407804#$Ultimate##0 ~n := #in~n; 407820#L25 assume ~n <= 0;#res := 1; 407818#factFINAL assume true; 407800#factEXIT >#66#return; 407753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407736#factFINAL assume true; 407726#factEXIT >#66#return; 407731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407888#factFINAL assume true; 407849#factEXIT >#78#return; 407851#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 407923#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 408590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 408588#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 408586#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 406664#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 407410#$Ultimate##0 ~n := #in~n; 407930#L25 assume !(~n <= 0); 407282#L26 call #t~ret0 := fact(~n - 1);< 407891#$Ultimate##0 ~n := #in~n; 407459#L25 assume !(~n <= 0); 407279#L26 call #t~ret0 := fact(~n - 1);< 407454#$Ultimate##0 ~n := #in~n; 407459#L25 assume !(~n <= 0); 407279#L26 call #t~ret0 := fact(~n - 1);< 407454#$Ultimate##0 ~n := #in~n; 407459#L25 assume !(~n <= 0); 407279#L26 call #t~ret0 := fact(~n - 1);< 407454#$Ultimate##0 ~n := #in~n; 407457#L25 assume ~n <= 0;#res := 1; 407456#factFINAL assume true; 407451#factEXIT >#66#return; 407450#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407445#factFINAL assume true; 407440#factEXIT >#66#return; 407438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407436#factFINAL assume true; 407430#factEXIT >#66#return; 407429#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407425#factFINAL assume true; 407417#factEXIT >#66#return; 407415#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 407411#factFINAL assume true; 407403#factEXIT >#74#return; 407397#L30-6 [2023-02-17 09:42:33,261 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:33,261 INFO L85 PathProgramCache]: Analyzing trace with hash -1293765602, now seen corresponding path program 32 times [2023-02-17 09:42:33,261 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:33,261 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1011123927] [2023-02-17 09:42:33,261 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:33,262 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:33,277 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:33,277 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2122905120] [2023-02-17 09:42:33,277 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:33,277 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:33,277 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:33,280 INFO L229 MonitoredProcess]: Starting monitored process 213 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:33,282 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (213)] Waiting until timeout for monitored process [2023-02-17 09:42:33,928 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:33,928 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:33,934 INFO L263 TraceCheckSpWp]: Trace formula consists of 1324 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:42:33,938 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:34,010 INFO L134 CoverageAnalysis]: Checked inductivity of 21387 backedges. 10411 proven. 24 refuted. 0 times theorem prover too weak. 10952 trivial. 0 not checked. [2023-02-17 09:42:34,010 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:34,180 INFO L134 CoverageAnalysis]: Checked inductivity of 21387 backedges. 693 proven. 999 refuted. 0 times theorem prover too weak. 19695 trivial. 0 not checked. [2023-02-17 09:42:34,181 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:34,181 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1011123927] [2023-02-17 09:42:34,181 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:34,181 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2122905120] [2023-02-17 09:42:34,181 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2122905120] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:34,181 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:34,182 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 24 [2023-02-17 09:42:34,182 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [526497568] [2023-02-17 09:42:34,182 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:34,182 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:34,183 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:34,183 INFO L85 PathProgramCache]: Analyzing trace with hash 1010990967, now seen corresponding path program 26 times [2023-02-17 09:42:34,183 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:34,183 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1856409880] [2023-02-17 09:42:34,183 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:34,183 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:34,201 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:34,201 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [850937599] [2023-02-17 09:42:34,201 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:34,201 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:34,202 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:34,205 INFO L229 MonitoredProcess]: Starting monitored process 214 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:34,206 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (214)] Waiting until timeout for monitored process [2023-02-17 09:42:34,821 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:34,821 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:34,824 INFO L263 TraceCheckSpWp]: Trace formula consists of 941 conjuncts, 9 conjunts are in the unsatisfiable core [2023-02-17 09:42:34,827 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:34,846 INFO L134 CoverageAnalysis]: Checked inductivity of 11755 backedges. 5487 proven. 19 refuted. 0 times theorem prover too weak. 6249 trivial. 0 not checked. [2023-02-17 09:42:34,846 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:34,880 INFO L134 CoverageAnalysis]: Checked inductivity of 11755 backedges. 231 proven. 424 refuted. 0 times theorem prover too weak. 11100 trivial. 0 not checked. [2023-02-17 09:42:34,880 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:34,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1856409880] [2023-02-17 09:42:34,880 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:34,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [850937599] [2023-02-17 09:42:34,880 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [850937599] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:34,880 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:34,880 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 10 [2023-02-17 09:42:34,881 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1929073511] [2023-02-17 09:42:34,881 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:34,881 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:34,881 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:34,881 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2023-02-17 09:42:34,881 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2023-02-17 09:42:34,882 INFO L87 Difference]: Start difference. First operand 3219 states and 7000 transitions. cyclomatic complexity: 3810 Second operand has 10 states, 9 states have (on average 4.666666666666667) internal successors, (42), 10 states have internal predecessors, (42), 7 states have call successors, (24), 2 states have call predecessors, (24), 4 states have return successors, (24), 6 states have call predecessors, (24), 7 states have call successors, (24) [2023-02-17 09:42:35,132 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:35,132 INFO L93 Difference]: Finished difference Result 3203 states and 6732 transitions. [2023-02-17 09:42:35,132 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3203 states and 6732 transitions. [2023-02-17 09:42:35,151 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 1106 [2023-02-17 09:42:35,175 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3203 states to 3203 states and 6732 transitions. [2023-02-17 09:42:35,175 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 492 [2023-02-17 09:42:35,176 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 492 [2023-02-17 09:42:35,176 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3203 states and 6732 transitions. [2023-02-17 09:42:35,176 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:35,176 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3203 states and 6732 transitions. [2023-02-17 09:42:35,177 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3203 states and 6732 transitions. [2023-02-17 09:42:35,227 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3203 to 3189. [2023-02-17 09:42:35,230 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3189 states, 1859 states have (on average 1.0532544378698225) internal successors, (1958), 1843 states have internal predecessors, (1958), 1035 states have call successors, (1093), 368 states have call predecessors, (1093), 295 states have return successors, (3663), 977 states have call predecessors, (3663), 1035 states have call successors, (3663) [2023-02-17 09:42:35,243 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3189 states to 3189 states and 6714 transitions. [2023-02-17 09:42:35,243 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3189 states and 6714 transitions. [2023-02-17 09:42:35,244 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-17 09:42:35,244 INFO L428 stractBuchiCegarLoop]: Abstraction has 3189 states and 6714 transitions. [2023-02-17 09:42:35,244 INFO L335 stractBuchiCegarLoop]: ======== Iteration 56 ============ [2023-02-17 09:42:35,244 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3189 states and 6714 transitions. [2023-02-17 09:42:35,252 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 1092 [2023-02-17 09:42:35,252 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:35,252 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:35,255 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [96, 96, 62, 62, 62, 62, 34, 12, 11, 9, 9, 9, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:35,255 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [61, 61, 40, 40, 40, 40, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:35,255 INFO L748 eck$LassoCheckResult]: Stem: 418789#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 418736#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 418737#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 418755#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 418747#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 418748#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 421099#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 418732#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 418733#$Ultimate##0 ~n := #in~n; 421178#L25 assume ~n <= 0;#res := 1; 421177#factFINAL assume true; 421176#factEXIT >#68#return; 418776#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 418777#$Ultimate##0 ~n := #in~n; 421257#L25 assume ~n <= 0;#res := 1; 421256#factFINAL assume true; 421243#factEXIT >#70#return; 418709#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 418710#$Ultimate##0 ~n := #in~n; 421274#L25 assume ~n <= 0;#res := 1; 421273#factFINAL assume true; 421271#factEXIT >#72#return; 421272#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418761#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 418762#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418759#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 418760#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 421357#$Ultimate##0 ~n := #in~n; 421355#L25 assume !(~n <= 0); 421347#L26 call #t~ret0 := fact(~n - 1);< 421350#$Ultimate##0 ~n := #in~n; 421358#L25 assume ~n <= 0;#res := 1; 421353#factFINAL assume true; 421346#factEXIT >#66#return; 421349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421383#factFINAL assume true; 421382#factEXIT >#74#return; 421325#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 421326#$Ultimate##0 ~n := #in~n; 421372#L25 assume ~n <= 0;#res := 1; 421370#factFINAL assume true; 421324#factEXIT >#76#return; 421321#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 421322#$Ultimate##0 ~n := #in~n; 421385#L25 assume !(~n <= 0); 421348#L26 call #t~ret0 := fact(~n - 1);< 421350#$Ultimate##0 ~n := #in~n; 421358#L25 assume ~n <= 0;#res := 1; 421353#factFINAL assume true; 421346#factEXIT >#66#return; 421345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421343#factFINAL assume true; 421320#factEXIT >#78#return; 421319#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 421318#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 421317#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 421315#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 421309#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 421295#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 421296#$Ultimate##0 ~n := #in~n; 421306#L25 assume !(~n <= 0); 421304#L26 call #t~ret0 := fact(~n - 1);< 421305#$Ultimate##0 ~n := #in~n; 421316#L25 assume !(~n <= 0); 421303#L26 call #t~ret0 := fact(~n - 1);< 421314#$Ultimate##0 ~n := #in~n; 421365#L25 assume ~n <= 0;#res := 1; 421364#factFINAL assume true; 421360#factEXIT >#66#return; 421359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421341#factFINAL assume true; 421310#factEXIT >#66#return; 421312#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421391#factFINAL assume true; 421390#factEXIT >#74#return; 421388#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 421389#$Ultimate##0 ~n := #in~n; 421393#L25 assume ~n <= 0;#res := 1; 421392#factFINAL assume true; 421387#factEXIT >#76#return; 418792#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 418793#$Ultimate##0 ~n := #in~n; 421344#L25 assume !(~n <= 0); 421311#L26 call #t~ret0 := fact(~n - 1);< 421342#$Ultimate##0 ~n := #in~n; 421363#L25 assume !(~n <= 0); 421361#L26 call #t~ret0 := fact(~n - 1);< 421362#$Ultimate##0 ~n := #in~n; 421365#L25 assume ~n <= 0;#res := 1; 421364#factFINAL assume true; 421360#factEXIT >#66#return; 421359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421341#factFINAL assume true; 421310#factEXIT >#66#return; 421313#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421386#factFINAL assume true; 421280#factEXIT >#78#return; 418740#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418741#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 418757#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 421327#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 421323#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 421294#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 421296#$Ultimate##0 ~n := #in~n; 421306#L25 assume !(~n <= 0); 421304#L26 call #t~ret0 := fact(~n - 1);< 421305#$Ultimate##0 ~n := #in~n; 421316#L25 assume !(~n <= 0); 421303#L26 call #t~ret0 := fact(~n - 1);< 421314#$Ultimate##0 ~n := #in~n; 421316#L25 assume !(~n <= 0); 421303#L26 call #t~ret0 := fact(~n - 1);< 421314#$Ultimate##0 ~n := #in~n; 421365#L25 assume ~n <= 0;#res := 1; 421364#factFINAL assume true; 421360#factEXIT >#66#return; 421359#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421341#factFINAL assume true; 421310#factEXIT >#66#return; 421308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421307#factFINAL assume true; 421302#factEXIT >#66#return; 421301#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421300#factFINAL assume true; 421293#factEXIT >#74#return; 421285#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 421286#$Ultimate##0 ~n := #in~n; 421395#L25 assume ~n <= 0;#res := 1; 421394#factFINAL assume true; 421284#factEXIT >#76#return; 421278#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 421281#$Ultimate##0 ~n := #in~n; 421376#L25 assume !(~n <= 0); 421332#L26 call #t~ret0 := fact(~n - 1);< 421374#$Ultimate##0 ~n := #in~n; 421413#L25 assume !(~n <= 0); 421334#L26 call #t~ret0 := fact(~n - 1);< 421340#$Ultimate##0 ~n := #in~n; 421407#L25 assume !(~n <= 0); 421333#L26 call #t~ret0 := fact(~n - 1);< 421410#$Ultimate##0 ~n := #in~n; 421414#L25 assume ~n <= 0;#res := 1; 421412#factFINAL assume true; 421409#factEXIT >#66#return; 421381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421379#factFINAL assume true; 421378#factEXIT >#66#return; 421377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421375#factFINAL assume true; 421373#factEXIT >#66#return; 421338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421282#factFINAL assume true; 421275#factEXIT >#78#return; 421279#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 421356#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 421354#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 421352#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 421351#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419072#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 421299#$Ultimate##0 ~n := #in~n; 421384#L25 assume !(~n <= 0); 421335#L26 call #t~ret0 := fact(~n - 1);< 421340#$Ultimate##0 ~n := #in~n; 421407#L25 assume !(~n <= 0); 421333#L26 call #t~ret0 := fact(~n - 1);< 421410#$Ultimate##0 ~n := #in~n; 421407#L25 assume !(~n <= 0); 421333#L26 call #t~ret0 := fact(~n - 1);< 421410#$Ultimate##0 ~n := #in~n; 421407#L25 assume !(~n <= 0); 421333#L26 call #t~ret0 := fact(~n - 1);< 421410#$Ultimate##0 ~n := #in~n; 421414#L25 assume ~n <= 0;#res := 1; 421412#factFINAL assume true; 421409#factEXIT >#66#return; 421381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421379#factFINAL assume true; 421378#factEXIT >#66#return; 421377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421375#factFINAL assume true; 421373#factEXIT >#66#return; 421371#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421366#factFINAL assume true; 421331#factEXIT >#66#return; 421330#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421329#factFINAL assume true; 421298#factEXIT >#74#return; 418727#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 421292#$Ultimate##0 ~n := #in~n; 421879#L25 assume ~n <= 0;#res := 1; 421878#factFINAL assume true; 421876#factEXIT >#76#return; 421839#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 421845#$Ultimate##0 ~n := #in~n; 421843#L25 assume !(~n <= 0); 421732#L26 call #t~ret0 := fact(~n - 1);< 421841#$Ultimate##0 ~n := #in~n; 421870#L25 assume !(~n <= 0); 421727#L26 call #t~ret0 := fact(~n - 1);< 421743#$Ultimate##0 ~n := #in~n; 421873#L25 assume !(~n <= 0); 421734#L26 call #t~ret0 := fact(~n - 1);< 421866#$Ultimate##0 ~n := #in~n; 421875#L25 assume ~n <= 0;#res := 1; 421874#factFINAL assume true; 421865#factEXIT >#66#return; 421863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421862#factFINAL assume true; 421860#factEXIT >#66#return; 421859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421853#factFINAL assume true; 421849#factEXIT >#66#return; 421802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421889#factFINAL assume true; 421885#factEXIT >#78#return; 418925#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 418923#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 418922#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 418918#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 418897#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 418886#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 418893#$Ultimate##0 ~n := #in~n; 419095#L25 assume !(~n <= 0); 418910#L26 call #t~ret0 := fact(~n - 1);< 418917#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419110#L25 assume ~n <= 0;#res := 1; 419109#factFINAL assume true; 419105#factEXIT >#66#return; 419104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419102#factFINAL assume true; 419101#factEXIT >#66#return; 419100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419099#factFINAL assume true; 419097#factEXIT >#66#return; 419096#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419094#factFINAL assume true; 419092#factEXIT >#66#return; 419090#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418941#factFINAL assume true; 418937#factEXIT >#66#return; 418935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418934#factFINAL assume true; 418931#factEXIT >#66#return; 418930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418926#factFINAL assume true; 418924#factEXIT >#66#return; 418913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418920#factFINAL assume true; 418899#factEXIT >#66#return; 418896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418892#factFINAL assume true; 418885#factEXIT >#74#return; 418888#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 418895#$Ultimate##0 ~n := #in~n; 418919#L25 assume ~n <= 0;#res := 1; 418898#factFINAL assume true; 418894#factEXIT >#76#return; 418887#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 418891#$Ultimate##0 ~n := #in~n; 418936#L25 assume !(~n <= 0); 418908#L26 call #t~ret0 := fact(~n - 1);< 419091#$Ultimate##0 ~n := #in~n; 419087#L25 assume !(~n <= 0); 418911#L26 call #t~ret0 := fact(~n - 1);< 418921#$Ultimate##0 ~n := #in~n; 419088#L25 assume !(~n <= 0); 418904#L26 call #t~ret0 := fact(~n - 1);< 418933#$Ultimate##0 ~n := #in~n; 419131#L25 assume !(~n <= 0); 418903#L26 call #t~ret0 := fact(~n - 1);< 418938#$Ultimate##0 ~n := #in~n; 419134#L25 assume !(~n <= 0); 418901#L26 call #t~ret0 := fact(~n - 1);< 419093#$Ultimate##0 ~n := #in~n; 419103#L25 assume !(~n <= 0); 418907#L26 call #t~ret0 := fact(~n - 1);< 419098#$Ultimate##0 ~n := #in~n; 419107#L25 assume !(~n <= 0); 418906#L26 call #t~ret0 := fact(~n - 1);< 418917#$Ultimate##0 ~n := #in~n; 419108#L25 assume !(~n <= 0); 418900#L26 call #t~ret0 := fact(~n - 1);< 419106#$Ultimate##0 ~n := #in~n; 419110#L25 assume ~n <= 0;#res := 1; 419109#factFINAL assume true; 419105#factEXIT >#66#return; 419104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419102#factFINAL assume true; 419101#factEXIT >#66#return; 419100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419099#factFINAL assume true; 419097#factEXIT >#66#return; 419096#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419094#factFINAL assume true; 419092#factEXIT >#66#return; 419090#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418941#factFINAL assume true; 418937#factEXIT >#66#return; 418935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418934#factFINAL assume true; 418931#factEXIT >#66#return; 418930#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418926#factFINAL assume true; 418924#factEXIT >#66#return; 418913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418920#factFINAL assume true; 418899#factEXIT >#66#return; 418896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 418892#factFINAL assume true; 418885#factEXIT >#78#return; 418884#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420088#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 420087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420084#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 420082#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 420078#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 420074#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420070#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 420050#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 420064#$Ultimate##0 ~n := #in~n; 420081#L25 assume !(~n <= 0); 418718#L26 call #t~ret0 := fact(~n - 1);< 420077#$Ultimate##0 ~n := #in~n; 420083#L25 assume ~n <= 0;#res := 1; 420080#factFINAL assume true; 420076#factEXIT >#66#return; 420073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420069#factFINAL assume true; 420063#factEXIT >#68#return; 420054#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 418775#$Ultimate##0 ~n := #in~n; 420068#L25 assume ~n <= 0;#res := 1; 420062#factFINAL assume true; 420041#factEXIT >#70#return; 420033#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 420034#$Ultimate##0 ~n := #in~n; 420072#L25 assume !(~n <= 0); 420066#L26 call #t~ret0 := fact(~n - 1);< 420067#$Ultimate##0 ~n := #in~n; 420075#L25 assume ~n <= 0;#res := 1; 420071#factFINAL assume true; 420065#factEXIT >#66#return; 420061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420040#factFINAL assume true; 420032#factEXIT >#72#return; 420030#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420010#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 420009#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420008#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420006#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419921#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 420005#$Ultimate##0 ~n := #in~n; 420038#L25 assume !(~n <= 0); 419543#L26 call #t~ret0 := fact(~n - 1);< 419571#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420004#factFINAL assume true; 419909#factEXIT >#68#return; 419789#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419823#$Ultimate##0 ~n := #in~n; 419821#L25 assume !(~n <= 0); 419524#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420004#factFINAL assume true; 419909#factEXIT >#70#return; 419875#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419907#$Ultimate##0 ~n := #in~n; 420029#L25 assume ~n <= 0;#res := 1; 419670#factFINAL assume true; 419869#factEXIT >#72#return; 419868#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 419844#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 419843#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 419840#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 419837#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419356#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419468#$Ultimate##0 ~n := #in~n; 420734#L25 assume !(~n <= 0); 419523#L26 call #t~ret0 := fact(~n - 1);< 419571#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421204#factFINAL assume true; 419674#factEXIT >#74#return; 419375#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419508#$Ultimate##0 ~n := #in~n; 419825#L25 assume !(~n <= 0); 419544#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419515#factFINAL assume true; 419470#factEXIT >#76#return; 419478#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419714#$Ultimate##0 ~n := #in~n; 419712#L25 assume !(~n <= 0); 419567#L26 call #t~ret0 := fact(~n - 1);< 419572#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419515#factFINAL assume true; 419470#factEXIT >#78#return; 419506#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 419824#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 419822#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 419820#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 419780#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419384#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419467#$Ultimate##0 ~n := #in~n; 420363#L25 assume !(~n <= 0); 419518#L26 call #t~ret0 := fact(~n - 1);< 419549#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419562#factFINAL assume true; 419517#factEXIT >#66#return; 419514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419466#factFINAL assume true; 419284#factEXIT >#74#return; 419385#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419508#$Ultimate##0 ~n := #in~n; 419825#L25 assume !(~n <= 0); 419544#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419515#factFINAL assume true; 419470#factEXIT >#76#return; 419480#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419673#$Ultimate##0 ~n := #in~n; 419672#L25 assume !(~n <= 0); 419568#L26 call #t~ret0 := fact(~n - 1);< 419656#$Ultimate##0 ~n := #in~n; 419708#L25 assume !(~n <= 0); 419700#L26 call #t~ret0 := fact(~n - 1);< 419702#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421204#factFINAL assume true; 419674#factEXIT >#78#return; 419640#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 419639#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 419627#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 419573#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 419551#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419390#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419467#$Ultimate##0 ~n := #in~n; 420363#L25 assume !(~n <= 0); 419518#L26 call #t~ret0 := fact(~n - 1);< 419549#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419562#factFINAL assume true; 419517#factEXIT >#66#return; 419545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419574#factFINAL assume true; 419552#factEXIT >#66#return; 419516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419510#factFINAL assume true; 419509#factEXIT >#74#return; 419386#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419508#$Ultimate##0 ~n := #in~n; 419825#L25 assume !(~n <= 0); 419544#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419515#factFINAL assume true; 419470#factEXIT >#76#return; 419387#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419461#$Ultimate##0 ~n := #in~n; 419724#L25 assume !(~n <= 0); 419530#L26 call #t~ret0 := fact(~n - 1);< 419713#$Ultimate##0 ~n := #in~n; 419711#L25 assume !(~n <= 0); 419528#L26 call #t~ret0 := fact(~n - 1);< 419637#$Ultimate##0 ~n := #in~n; 419710#L25 assume !(~n <= 0); 419631#L26 call #t~ret0 := fact(~n - 1);< 419703#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419562#factFINAL assume true; 419517#factEXIT >#66#return; 419514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419466#factFINAL assume true; 419284#factEXIT >#78#return; 419281#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 419280#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 419279#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 419278#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 419275#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419151#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419200#$Ultimate##0 ~n := #in~n; 419469#L25 assume !(~n <= 0); 419178#L26 call #t~ret0 := fact(~n - 1);< 419268#$Ultimate##0 ~n := #in~n; 419263#L25 assume !(~n <= 0); 419174#L26 call #t~ret0 := fact(~n - 1);< 419213#$Ultimate##0 ~n := #in~n; 419250#L25 assume !(~n <= 0); 419179#L26 call #t~ret0 := fact(~n - 1);< 419239#$Ultimate##0 ~n := #in~n; 419250#L25 assume !(~n <= 0); 419179#L26 call #t~ret0 := fact(~n - 1);< 419239#$Ultimate##0 ~n := #in~n; 419250#L25 assume !(~n <= 0); 419179#L26 call #t~ret0 := fact(~n - 1);< 419239#$Ultimate##0 ~n := #in~n; 419248#L25 assume ~n <= 0;#res := 1; 419246#factFINAL assume true; 419237#factEXIT >#66#return; 419236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419233#factFINAL assume true; 419228#factEXIT >#66#return; 419226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419224#factFINAL assume true; 419218#factEXIT >#66#return; 419217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419214#factFINAL assume true; 419210#factEXIT >#66#return; 419209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419207#factFINAL assume true; 419204#factEXIT >#66#return; 419203#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419201#factFINAL assume true; 419197#factEXIT >#74#return; 418849#L30-6 [2023-02-17 09:42:35,255 INFO L750 eck$LassoCheckResult]: Loop: 418849#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419196#$Ultimate##0 ~n := #in~n; 419195#L25 assume !(~n <= 0); 419190#L26 call #t~ret0 := fact(~n - 1);< 419193#$Ultimate##0 ~n := #in~n; 419194#L25 assume ~n <= 0;#res := 1; 419282#factFINAL assume true; 419271#factEXIT >#66#return; 419269#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419266#factFINAL assume true; 419261#factEXIT >#76#return; 418873#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419264#$Ultimate##0 ~n := #in~n; 419260#L25 assume !(~n <= 0); 419212#L26 call #t~ret0 := fact(~n - 1);< 419245#$Ultimate##0 ~n := #in~n; 419242#L25 assume !(~n <= 0); 419220#L26 call #t~ret0 := fact(~n - 1);< 419223#$Ultimate##0 ~n := #in~n; 419234#L25 assume !(~n <= 0); 419229#L26 call #t~ret0 := fact(~n - 1);< 419231#$Ultimate##0 ~n := #in~n; 419259#L25 assume !(~n <= 0); 419238#L26 call #t~ret0 := fact(~n - 1);< 419240#$Ultimate##0 ~n := #in~n; 419248#L25 assume ~n <= 0;#res := 1; 419246#factFINAL assume true; 419237#factEXIT >#66#return; 419236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419233#factFINAL assume true; 419228#factEXIT >#66#return; 419226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419224#factFINAL assume true; 419218#factEXIT >#66#return; 419217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419214#factFINAL assume true; 419210#factEXIT >#66#return; 419167#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419168#factFINAL assume true; 418818#factEXIT >#78#return; 418879#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420927#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 420926#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420925#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 420924#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 420923#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 420922#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420234#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 420172#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 420174#$Ultimate##0 ~n := #in~n; 420183#L25 assume !(~n <= 0); 418713#L26 call #t~ret0 := fact(~n - 1);< 420181#$Ultimate##0 ~n := #in~n; 420085#L25 assume !(~n <= 0); 418715#L26 call #t~ret0 := fact(~n - 1);< 420231#$Ultimate##0 ~n := #in~n; 420256#L25 assume ~n <= 0;#res := 1; 420255#factFINAL assume true; 420230#factEXIT >#66#return; 420228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420188#factFINAL assume true; 420179#factEXIT >#66#return; 420177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420175#factFINAL assume true; 420171#factEXIT >#68#return; 420052#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 418775#$Ultimate##0 ~n := #in~n; 420068#L25 assume ~n <= 0;#res := 1; 420062#factFINAL assume true; 420041#factEXIT >#70#return; 420059#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 420167#$Ultimate##0 ~n := #in~n; 420224#L25 assume !(~n <= 0); 420214#L26 call #t~ret0 := fact(~n - 1);< 420222#$Ultimate##0 ~n := #in~n; 420079#L25 assume !(~n <= 0); 420267#L26 call #t~ret0 := fact(~n - 1);< 420270#$Ultimate##0 ~n := #in~n; 420273#L25 assume ~n <= 0;#res := 1; 420272#factFINAL assume true; 420266#factEXIT >#66#return; 420265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420260#factFINAL assume true; 420213#factEXIT >#66#return; 420170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420169#factFINAL assume true; 420165#factEXIT >#72#return; 420161#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420156#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 420151#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420146#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420144#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419649#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 420122#$Ultimate##0 ~n := #in~n; 421205#L25 assume !(~n <= 0); 419535#L26 call #t~ret0 := fact(~n - 1);< 419549#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419635#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420123#factFINAL assume true; 420121#factEXIT >#68#return; 419817#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419823#$Ultimate##0 ~n := #in~n; 419821#L25 assume !(~n <= 0); 419524#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420004#factFINAL assume true; 419909#factEXIT >#70#return; 419606#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419671#$Ultimate##0 ~n := #in~n; 419669#L25 assume ~n <= 0;#res := 1; 419670#factFINAL assume true; 419869#factEXIT >#72#return; 419893#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420136#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 420132#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420128#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420126#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419650#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 420122#$Ultimate##0 ~n := #in~n; 421205#L25 assume !(~n <= 0); 419535#L26 call #t~ret0 := fact(~n - 1);< 419549#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419635#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420123#factFINAL assume true; 420121#factEXIT >#68#return; 419801#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419823#$Ultimate##0 ~n := #in~n; 419821#L25 assume !(~n <= 0); 419524#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 420004#factFINAL assume true; 419909#factEXIT >#70#return; 419601#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419671#$Ultimate##0 ~n := #in~n; 419669#L25 assume ~n <= 0;#res := 1; 419670#factFINAL assume true; 419869#factEXIT >#72#return; 419883#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420119#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 420118#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420117#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420116#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419324#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419467#$Ultimate##0 ~n := #in~n; 420363#L25 assume !(~n <= 0); 419518#L26 call #t~ret0 := fact(~n - 1);< 419549#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419562#factFINAL assume true; 419517#factEXIT >#66#return; 419514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419466#factFINAL assume true; 419284#factEXIT >#74#return; 419365#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419508#$Ultimate##0 ~n := #in~n; 419825#L25 assume !(~n <= 0); 419544#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419515#factFINAL assume true; 419470#factEXIT >#76#return; 419481#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419673#$Ultimate##0 ~n := #in~n; 419672#L25 assume !(~n <= 0); 419568#L26 call #t~ret0 := fact(~n - 1);< 419656#$Ultimate##0 ~n := #in~n; 419638#L25 assume ~n <= 0;#res := 1; 419594#factFINAL assume true; 419564#factEXIT >#66#return; 419550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419515#factFINAL assume true; 419470#factEXIT >#78#return; 419492#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420115#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 420114#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420113#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420112#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419432#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419467#$Ultimate##0 ~n := #in~n; 420363#L25 assume !(~n <= 0); 419518#L26 call #t~ret0 := fact(~n - 1);< 419549#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419562#factFINAL assume true; 419517#factEXIT >#66#return; 419545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419574#factFINAL assume true; 419552#factEXIT >#66#return; 419516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419510#factFINAL assume true; 419509#factEXIT >#74#return; 419317#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419508#$Ultimate##0 ~n := #in~n; 419825#L25 assume !(~n <= 0); 419544#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419749#L25 assume !(~n <= 0); 419529#L26 call #t~ret0 := fact(~n - 1);< 419723#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421204#factFINAL assume true; 419674#factEXIT >#76#return; 419473#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419673#$Ultimate##0 ~n := #in~n; 419672#L25 assume !(~n <= 0); 419568#L26 call #t~ret0 := fact(~n - 1);< 419656#$Ultimate##0 ~n := #in~n; 419708#L25 assume !(~n <= 0); 419700#L26 call #t~ret0 := fact(~n - 1);< 419702#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421204#factFINAL assume true; 419674#factEXIT >#78#return; 419687#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420111#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 420110#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420109#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420108#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 419389#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419467#$Ultimate##0 ~n := #in~n; 420363#L25 assume !(~n <= 0); 419518#L26 call #t~ret0 := fact(~n - 1);< 419549#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419953#L25 assume !(~n <= 0); 419519#L26 call #t~ret0 := fact(~n - 1);< 419701#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419562#factFINAL assume true; 419517#factEXIT >#66#return; 419545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419574#factFINAL assume true; 419552#factEXIT >#66#return; 419516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419510#factFINAL assume true; 419509#factEXIT >#74#return; 419400#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 419508#$Ultimate##0 ~n := #in~n; 419825#L25 assume !(~n <= 0); 419544#L26 call #t~ret0 := fact(~n - 1);< 419751#$Ultimate##0 ~n := #in~n; 419749#L25 assume !(~n <= 0); 419529#L26 call #t~ret0 := fact(~n - 1);< 419723#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421204#factFINAL assume true; 419674#factEXIT >#76#return; 419485#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 419673#$Ultimate##0 ~n := #in~n; 419672#L25 assume !(~n <= 0); 419568#L26 call #t~ret0 := fact(~n - 1);< 419656#$Ultimate##0 ~n := #in~n; 419708#L25 assume !(~n <= 0); 419700#L26 call #t~ret0 := fact(~n - 1);< 419702#$Ultimate##0 ~n := #in~n; 419709#L25 assume ~n <= 0;#res := 1; 419707#factFINAL assume true; 419699#factEXIT >#66#return; 419697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419641#factFINAL assume true; 419628#factEXIT >#66#return; 419633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 421204#factFINAL assume true; 419674#factEXIT >#78#return; 419683#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 420102#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 420099#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 420090#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 420037#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 418821#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 419258#$Ultimate##0 ~n := #in~n; 419257#L25 assume !(~n <= 0); 419171#L26 call #t~ret0 := fact(~n - 1);< 419215#$Ultimate##0 ~n := #in~n; 419250#L25 assume !(~n <= 0); 419179#L26 call #t~ret0 := fact(~n - 1);< 419239#$Ultimate##0 ~n := #in~n; 419250#L25 assume !(~n <= 0); 419179#L26 call #t~ret0 := fact(~n - 1);< 419239#$Ultimate##0 ~n := #in~n; 419250#L25 assume !(~n <= 0); 419179#L26 call #t~ret0 := fact(~n - 1);< 419239#$Ultimate##0 ~n := #in~n; 419248#L25 assume ~n <= 0;#res := 1; 419246#factFINAL assume true; 419237#factEXIT >#66#return; 419236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419233#factFINAL assume true; 419228#factEXIT >#66#return; 419226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419224#factFINAL assume true; 419218#factEXIT >#66#return; 419217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419214#factFINAL assume true; 419210#factEXIT >#66#return; 419167#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 419168#factFINAL assume true; 418818#factEXIT >#74#return; 418849#L30-6 [2023-02-17 09:42:35,255 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:35,256 INFO L85 PathProgramCache]: Analyzing trace with hash 1304221102, now seen corresponding path program 33 times [2023-02-17 09:42:35,256 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:35,256 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [523287001] [2023-02-17 09:42:35,256 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:35,256 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:35,273 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:35,274 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [783733397] [2023-02-17 09:42:35,274 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:35,274 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:35,274 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:35,276 INFO L229 MonitoredProcess]: Starting monitored process 215 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:35,276 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (215)] Waiting until timeout for monitored process [2023-02-17 09:42:35,933 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2023-02-17 09:42:35,933 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:35,937 INFO L263 TraceCheckSpWp]: Trace formula consists of 661 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:42:35,942 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:36,078 INFO L134 CoverageAnalysis]: Checked inductivity of 22385 backedges. 2578 proven. 1292 refuted. 0 times theorem prover too weak. 18515 trivial. 0 not checked. [2023-02-17 09:42:36,078 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:36,370 INFO L134 CoverageAnalysis]: Checked inductivity of 22385 backedges. 2578 proven. 1320 refuted. 0 times theorem prover too weak. 18487 trivial. 0 not checked. [2023-02-17 09:42:36,370 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:36,370 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [523287001] [2023-02-17 09:42:36,370 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:36,370 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [783733397] [2023-02-17 09:42:36,370 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [783733397] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:36,371 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:36,371 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 26] total 30 [2023-02-17 09:42:36,371 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1334513754] [2023-02-17 09:42:36,371 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:36,371 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:36,371 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:36,371 INFO L85 PathProgramCache]: Analyzing trace with hash 1914009975, now seen corresponding path program 27 times [2023-02-17 09:42:36,372 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:36,372 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [587728646] [2023-02-17 09:42:36,372 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:36,372 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:36,385 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:36,385 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [866388004] [2023-02-17 09:42:36,385 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:36,385 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:36,385 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:36,388 INFO L229 MonitoredProcess]: Starting monitored process 216 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:36,389 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (216)] Waiting until timeout for monitored process [2023-02-17 09:42:36,943 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2023-02-17 09:42:36,943 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:36,945 INFO L263 TraceCheckSpWp]: Trace formula consists of 202 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-17 09:42:36,947 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:37,019 INFO L134 CoverageAnalysis]: Checked inductivity of 8995 backedges. 1861 proven. 230 refuted. 0 times theorem prover too weak. 6904 trivial. 0 not checked. [2023-02-17 09:42:37,019 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:37,252 INFO L134 CoverageAnalysis]: Checked inductivity of 8995 backedges. 1861 proven. 255 refuted. 0 times theorem prover too weak. 6879 trivial. 0 not checked. [2023-02-17 09:42:37,253 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:37,253 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [587728646] [2023-02-17 09:42:37,253 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:37,253 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [866388004] [2023-02-17 09:42:37,253 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [866388004] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:37,253 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:37,253 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 23] total 26 [2023-02-17 09:42:37,253 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1642506184] [2023-02-17 09:42:37,253 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:37,254 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:37,254 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:37,254 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2023-02-17 09:42:37,254 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=105, Invalid=597, Unknown=0, NotChecked=0, Total=702 [2023-02-17 09:42:37,255 INFO L87 Difference]: Start difference. First operand 3189 states and 6714 transitions. cyclomatic complexity: 3554 Second operand has 27 states, 23 states have (on average 2.782608695652174) internal successors, (64), 26 states have internal predecessors, (64), 15 states have call successors, (22), 1 states have call predecessors, (22), 10 states have return successors, (27), 11 states have call predecessors, (27), 15 states have call successors, (27) [2023-02-17 09:42:38,073 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:38,073 INFO L93 Difference]: Finished difference Result 3435 states and 7122 transitions. [2023-02-17 09:42:38,073 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3435 states and 7122 transitions. [2023-02-17 09:42:38,093 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 1164 [2023-02-17 09:42:38,116 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3435 states to 3260 states and 6804 transitions. [2023-02-17 09:42:38,116 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 490 [2023-02-17 09:42:38,116 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 490 [2023-02-17 09:42:38,117 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3260 states and 6804 transitions. [2023-02-17 09:42:38,117 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:38,117 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3260 states and 6804 transitions. [2023-02-17 09:42:38,117 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3260 states and 6804 transitions. [2023-02-17 09:42:38,158 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3260 to 2999. [2023-02-17 09:42:38,161 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2999 states, 1743 states have (on average 1.051061388410786) internal successors, (1832), 1723 states have internal predecessors, (1832), 988 states have call successors, (1041), 366 states have call predecessors, (1041), 268 states have return successors, (3494), 909 states have call predecessors, (3494), 988 states have call successors, (3494) [2023-02-17 09:42:38,173 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2999 states to 2999 states and 6367 transitions. [2023-02-17 09:42:38,173 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2999 states and 6367 transitions. [2023-02-17 09:42:38,173 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2023-02-17 09:42:38,173 INFO L428 stractBuchiCegarLoop]: Abstraction has 2999 states and 6367 transitions. [2023-02-17 09:42:38,173 INFO L335 stractBuchiCegarLoop]: ======== Iteration 57 ============ [2023-02-17 09:42:38,174 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2999 states and 6367 transitions. [2023-02-17 09:42:38,181 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 998 [2023-02-17 09:42:38,181 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:38,181 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:38,183 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [95, 95, 60, 60, 60, 60, 35, 12, 11, 9, 9, 9, 9, 9, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:38,183 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [66, 66, 45, 45, 45, 45, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:38,184 INFO L748 eck$LassoCheckResult]: Stem: 431525#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 431429#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 431430#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 431447#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 431526#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 431991#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 431990#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431986#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431987#$Ultimate##0 ~n := #in~n; 431992#L25 assume ~n <= 0;#res := 1; 431989#factFINAL assume true; 431985#factEXIT >#68#return; 431981#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431982#$Ultimate##0 ~n := #in~n; 431988#L25 assume ~n <= 0;#res := 1; 431984#factFINAL assume true; 431980#factEXIT >#70#return; 431977#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 431978#$Ultimate##0 ~n := #in~n; 431983#L25 assume ~n <= 0;#res := 1; 431979#factFINAL assume true; 431976#factEXIT >#72#return; 431975#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 431974#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 431973#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 431972#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 431971#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431964#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431968#$Ultimate##0 ~n := #in~n; 431970#L25 assume !(~n <= 0); 431960#L26 call #t~ret0 := fact(~n - 1);< 431962#$Ultimate##0 ~n := #in~n; 431966#L25 assume ~n <= 0;#res := 1; 431963#factFINAL assume true; 431958#factEXIT >#66#return; 431961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431969#factFINAL assume true; 431967#factEXIT >#74#return; 431949#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431950#$Ultimate##0 ~n := #in~n; 431955#L25 assume ~n <= 0;#res := 1; 431952#factFINAL assume true; 431948#factEXIT >#76#return; 431945#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 431946#$Ultimate##0 ~n := #in~n; 431965#L25 assume !(~n <= 0); 431959#L26 call #t~ret0 := fact(~n - 1);< 431962#$Ultimate##0 ~n := #in~n; 431966#L25 assume ~n <= 0;#res := 1; 431963#factFINAL assume true; 431958#factEXIT >#66#return; 431956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431954#factFINAL assume true; 431944#factEXIT >#78#return; 431943#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 431942#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 431941#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 431940#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 431933#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431898#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431900#$Ultimate##0 ~n := #in~n; 431912#L25 assume !(~n <= 0); 431908#L26 call #t~ret0 := fact(~n - 1);< 431909#$Ultimate##0 ~n := #in~n; 431931#L25 assume !(~n <= 0); 431907#L26 call #t~ret0 := fact(~n - 1);< 431920#$Ultimate##0 ~n := #in~n; 431938#L25 assume ~n <= 0;#res := 1; 431932#factFINAL assume true; 431928#factEXIT >#66#return; 431927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431924#factFINAL assume true; 431916#factEXIT >#66#return; 431919#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431953#factFINAL assume true; 431939#factEXIT >#74#return; 431936#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431937#$Ultimate##0 ~n := #in~n; 431951#L25 assume ~n <= 0;#res := 1; 431947#factFINAL assume true; 431935#factEXIT >#76#return; 431922#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 431923#$Ultimate##0 ~n := #in~n; 431926#L25 assume !(~n <= 0); 431917#L26 call #t~ret0 := fact(~n - 1);< 431925#$Ultimate##0 ~n := #in~n; 431957#L25 assume !(~n <= 0); 431929#L26 call #t~ret0 := fact(~n - 1);< 431930#$Ultimate##0 ~n := #in~n; 431938#L25 assume ~n <= 0;#res := 1; 431932#factFINAL assume true; 431928#factEXIT >#66#return; 431927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431924#factFINAL assume true; 431916#factEXIT >#66#return; 431918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431934#factFINAL assume true; 431921#factEXIT >#78#return; 431915#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 431913#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 431910#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 431905#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 431903#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431899#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431900#$Ultimate##0 ~n := #in~n; 431912#L25 assume !(~n <= 0); 431908#L26 call #t~ret0 := fact(~n - 1);< 431909#$Ultimate##0 ~n := #in~n; 431931#L25 assume !(~n <= 0); 431907#L26 call #t~ret0 := fact(~n - 1);< 431920#$Ultimate##0 ~n := #in~n; 431931#L25 assume !(~n <= 0); 431907#L26 call #t~ret0 := fact(~n - 1);< 431920#$Ultimate##0 ~n := #in~n; 431938#L25 assume ~n <= 0;#res := 1; 431932#factFINAL assume true; 431928#factEXIT >#66#return; 431927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431924#factFINAL assume true; 431916#factEXIT >#66#return; 431914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431911#factFINAL assume true; 431906#factEXIT >#66#return; 431904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431902#factFINAL assume true; 431897#factEXIT >#74#return; 431894#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431895#$Ultimate##0 ~n := #in~n; 431901#L25 assume ~n <= 0;#res := 1; 431896#factFINAL assume true; 431893#factEXIT >#76#return; 431891#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 431892#$Ultimate##0 ~n := #in~n; 432034#L25 assume !(~n <= 0); 432017#L26 call #t~ret0 := fact(~n - 1);< 432029#$Ultimate##0 ~n := #in~n; 432061#L25 assume !(~n <= 0); 432016#L26 call #t~ret0 := fact(~n - 1);< 432012#$Ultimate##0 ~n := #in~n; 432052#L25 assume !(~n <= 0); 432015#L26 call #t~ret0 := fact(~n - 1);< 432051#$Ultimate##0 ~n := #in~n; 432056#L25 assume ~n <= 0;#res := 1; 432055#factFINAL assume true; 432050#factEXIT >#66#return; 432045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432044#factFINAL assume true; 432042#factEXIT >#66#return; 432038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432032#factFINAL assume true; 432027#factEXIT >#66#return; 432023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432013#factFINAL assume true; 431890#factEXIT >#78#return; 431889#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 431888#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 431887#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 431886#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 431885#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431878#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431879#$Ultimate##0 ~n := #in~n; 432022#L25 assume !(~n <= 0); 432011#L26 call #t~ret0 := fact(~n - 1);< 432012#$Ultimate##0 ~n := #in~n; 432052#L25 assume !(~n <= 0); 432015#L26 call #t~ret0 := fact(~n - 1);< 432051#$Ultimate##0 ~n := #in~n; 432052#L25 assume !(~n <= 0); 432015#L26 call #t~ret0 := fact(~n - 1);< 432051#$Ultimate##0 ~n := #in~n; 432052#L25 assume !(~n <= 0); 432015#L26 call #t~ret0 := fact(~n - 1);< 432051#$Ultimate##0 ~n := #in~n; 432056#L25 assume ~n <= 0;#res := 1; 432055#factFINAL assume true; 432050#factEXIT >#66#return; 432045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432044#factFINAL assume true; 432042#factEXIT >#66#return; 432038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432032#factFINAL assume true; 432027#factEXIT >#66#return; 432028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432014#factFINAL assume true; 432018#factEXIT >#66#return; 432026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431884#factFINAL assume true; 431877#factEXIT >#74#return; 431875#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 432048#$Ultimate##0 ~n := #in~n; 432333#L25 assume ~n <= 0;#res := 1; 432331#factFINAL assume true; 432329#factEXIT >#76#return; 432316#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432319#$Ultimate##0 ~n := #in~n; 432318#L25 assume !(~n <= 0); 432218#L26 call #t~ret0 := fact(~n - 1);< 432317#$Ultimate##0 ~n := #in~n; 432355#L25 assume !(~n <= 0); 432221#L26 call #t~ret0 := fact(~n - 1);< 432271#$Ultimate##0 ~n := #in~n; 432354#L25 assume !(~n <= 0); 432210#L26 call #t~ret0 := fact(~n - 1);< 432349#$Ultimate##0 ~n := #in~n; 432356#L25 assume ~n <= 0;#res := 1; 432353#factFINAL assume true; 432348#factEXIT >#66#return; 432346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432342#factFINAL assume true; 432340#factEXIT >#66#return; 432338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432336#factFINAL assume true; 432328#factEXIT >#66#return; 432270#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432394#factFINAL assume true; 432378#factEXIT >#78#return; 431822#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 431820#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 431781#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 431779#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 431709#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431707#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431708#$Ultimate##0 ~n := #in~n; 431774#L25 assume !(~n <= 0); 431721#L26 call #t~ret0 := fact(~n - 1);< 431722#$Ultimate##0 ~n := #in~n; 431734#L25 assume !(~n <= 0); 431731#L26 call #t~ret0 := fact(~n - 1);< 431732#$Ultimate##0 ~n := #in~n; 431743#L25 assume !(~n <= 0); 431739#L26 call #t~ret0 := fact(~n - 1);< 431741#$Ultimate##0 ~n := #in~n; 431750#L25 assume !(~n <= 0); 431740#L26 call #t~ret0 := fact(~n - 1);< 431748#$Ultimate##0 ~n := #in~n; 431750#L25 assume !(~n <= 0); 431740#L26 call #t~ret0 := fact(~n - 1);< 431748#$Ultimate##0 ~n := #in~n; 431750#L25 assume !(~n <= 0); 431740#L26 call #t~ret0 := fact(~n - 1);< 431748#$Ultimate##0 ~n := #in~n; 431773#L25 assume ~n <= 0;#res := 1; 431771#factFINAL assume true; 431768#factEXIT >#66#return; 431766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431764#factFINAL assume true; 431763#factEXIT >#66#return; 431761#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431759#factFINAL assume true; 431747#factEXIT >#66#return; 431745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431744#factFINAL assume true; 431738#factEXIT >#66#return; 431736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431735#factFINAL assume true; 431730#factEXIT >#66#return; 431729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431726#factFINAL assume true; 431720#factEXIT >#66#return; 431718#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431713#factFINAL assume true; 431706#factEXIT >#74#return; 431682#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431683#$Ultimate##0 ~n := #in~n; 431686#L25 assume ~n <= 0;#res := 1; 431685#factFINAL assume true; 431681#factEXIT >#76#return; 431653#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 431662#$Ultimate##0 ~n := #in~n; 431661#L25 assume !(~n <= 0); 431629#L26 call #t~ret0 := fact(~n - 1);< 431654#$Ultimate##0 ~n := #in~n; 431684#L25 assume !(~n <= 0); 431631#L26 call #t~ret0 := fact(~n - 1);< 431658#$Ultimate##0 ~n := #in~n; 431696#L25 assume !(~n <= 0); 431628#L26 call #t~ret0 := fact(~n - 1);< 431670#$Ultimate##0 ~n := #in~n; 431832#L25 assume !(~n <= 0); 431630#L26 call #t~ret0 := fact(~n - 1);< 431675#$Ultimate##0 ~n := #in~n; 431754#L25 assume !(~n <= 0); 431633#L26 call #t~ret0 := fact(~n - 1);< 431651#$Ultimate##0 ~n := #in~n; 431733#L25 assume !(~n <= 0); 431624#L26 call #t~ret0 := fact(~n - 1);< 431728#$Ultimate##0 ~n := #in~n; 431733#L25 assume !(~n <= 0); 431624#L26 call #t~ret0 := fact(~n - 1);< 431728#$Ultimate##0 ~n := #in~n; 431742#L25 assume ~n <= 0;#res := 1; 431737#factFINAL assume true; 431727#factEXIT >#66#return; 431725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431724#factFINAL assume true; 431705#factEXIT >#66#return; 431701#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431699#factFINAL assume true; 431674#factEXIT >#66#return; 431672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431671#factFINAL assume true; 431669#factEXIT >#66#return; 431668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431660#factFINAL assume true; 431657#factEXIT >#66#return; 431655#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431652#factFINAL assume true; 431649#factEXIT >#66#return; 431648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 431647#factFINAL assume true; 431645#factEXIT >#66#return; 431638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433318#factFINAL assume true; 433317#factEXIT >#78#return; 431607#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433313#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 433286#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433284#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 433283#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 433281#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 433279#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433278#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433260#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433277#$Ultimate##0 ~n := #in~n; 433301#L25 assume !(~n <= 0); 431462#L26 call #t~ret0 := fact(~n - 1);< 433299#$Ultimate##0 ~n := #in~n; 433308#L25 assume ~n <= 0;#res := 1; 433307#factFINAL assume true; 433298#factEXIT >#66#return; 433293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433290#factFINAL assume true; 433276#factEXIT >#68#return; 433256#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431500#$Ultimate##0 ~n := #in~n; 433292#L25 assume ~n <= 0;#res := 1; 433289#factFINAL assume true; 433252#factEXIT >#70#return; 433250#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433251#$Ultimate##0 ~n := #in~n; 433297#L25 assume !(~n <= 0); 433295#L26 call #t~ret0 := fact(~n - 1);< 433296#$Ultimate##0 ~n := #in~n; 433305#L25 assume ~n <= 0;#res := 1; 433304#factFINAL assume true; 433294#factEXIT >#66#return; 433291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433287#factFINAL assume true; 433249#factEXIT >#72#return; 433248#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433247#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 433245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433207#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 433180#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433204#$Ultimate##0 ~n := #in~n; 433321#L25 assume !(~n <= 0); 432788#L26 call #t~ret0 := fact(~n - 1);< 432883#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433230#factFINAL assume true; 433153#factEXIT >#68#return; 433055#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433060#$Ultimate##0 ~n := #in~n; 433059#L25 assume !(~n <= 0); 432794#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433230#factFINAL assume true; 433153#factEXIT >#70#return; 433089#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433151#$Ultimate##0 ~n := #in~n; 433225#L25 assume ~n <= 0;#res := 1; 433223#factFINAL assume true; 433069#factEXIT >#72#return; 433068#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433067#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 433066#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433065#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 432976#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432586#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 432824#$Ultimate##0 ~n := #in~n; 432884#L25 assume !(~n <= 0); 432795#L26 call #t~ret0 := fact(~n - 1);< 432883#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433206#factFINAL assume true; 432977#factEXIT >#74#return; 432591#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431523#$Ultimate##0 ~n := #in~n; 433064#L25 assume !(~n <= 0); 432778#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432801#factFINAL assume true; 432744#factEXIT >#76#return; 432747#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433282#$Ultimate##0 ~n := #in~n; 433280#L25 assume !(~n <= 0); 433212#L26 call #t~ret0 := fact(~n - 1);< 433215#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432801#factFINAL assume true; 432744#factEXIT >#78#return; 432766#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433319#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 433316#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433312#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433229#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432732#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431345#$Ultimate##0 ~n := #in~n; 433323#L25 assume !(~n <= 0); 432791#L26 call #t~ret0 := fact(~n - 1);< 432931#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432804#factFINAL assume true; 432768#factEXIT >#66#return; 432743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432742#factFINAL assume true; 432725#factEXIT >#74#return; 432622#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431523#$Ultimate##0 ~n := #in~n; 433064#L25 assume !(~n <= 0); 432778#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432801#factFINAL assume true; 432744#factEXIT >#76#return; 432748#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432802#$Ultimate##0 ~n := #in~n; 433285#L25 assume !(~n <= 0); 432831#L26 call #t~ret0 := fact(~n - 1);< 433216#$Ultimate##0 ~n := #in~n; 432992#L25 assume !(~n <= 0); 432900#L26 call #t~ret0 := fact(~n - 1);< 432902#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433206#factFINAL assume true; 432977#factEXIT >#78#return; 432898#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 432865#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 432844#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 432825#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 432812#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432734#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431345#$Ultimate##0 ~n := #in~n; 433323#L25 assume !(~n <= 0); 432791#L26 call #t~ret0 := fact(~n - 1);< 432931#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432804#factFINAL assume true; 432768#factEXIT >#66#return; 432797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433227#factFINAL assume true; 433218#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433241#factFINAL assume true; 432803#factEXIT >#74#return; 432623#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431523#$Ultimate##0 ~n := #in~n; 433064#L25 assume !(~n <= 0); 432778#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432801#factFINAL assume true; 432744#factEXIT >#76#return; 432733#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432740#$Ultimate##0 ~n := #in~n; 434319#L25 assume !(~n <= 0); 432776#L26 call #t~ret0 := fact(~n - 1);< 432800#$Ultimate##0 ~n := #in~n; 433492#L25 assume !(~n <= 0); 432775#L26 call #t~ret0 := fact(~n - 1);< 432836#$Ultimate##0 ~n := #in~n; 432993#L25 assume !(~n <= 0); 432829#L26 call #t~ret0 := fact(~n - 1);< 432903#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432804#factFINAL assume true; 432768#factEXIT >#66#return; 432743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432742#factFINAL assume true; 432725#factEXIT >#78#return; 432724#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 432718#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 432717#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 432715#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 432540#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431539#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 432478#$Ultimate##0 ~n := #in~n; 432722#L25 assume !(~n <= 0); 432453#L26 call #t~ret0 := fact(~n - 1);< 432716#$Ultimate##0 ~n := #in~n; 432714#L25 assume !(~n <= 0); 432451#L26 call #t~ret0 := fact(~n - 1);< 432713#$Ultimate##0 ~n := #in~n; 432712#L25 assume !(~n <= 0); 432438#L26 call #t~ret0 := fact(~n - 1);< 432512#$Ultimate##0 ~n := #in~n; 432530#L25 assume !(~n <= 0); 432442#L26 call #t~ret0 := fact(~n - 1);< 432521#$Ultimate##0 ~n := #in~n; 432530#L25 assume !(~n <= 0); 432442#L26 call #t~ret0 := fact(~n - 1);< 432521#$Ultimate##0 ~n := #in~n; 432529#L25 assume ~n <= 0;#res := 1; 432528#factFINAL assume true; 432518#factEXIT >#66#return; 432515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432514#factFINAL assume true; 432508#factEXIT >#66#return; 432506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432504#factFINAL assume true; 432497#factEXIT >#66#return; 432496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432493#factFINAL assume true; 432488#factEXIT >#66#return; 432487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432485#factFINAL assume true; 432482#factEXIT >#66#return; 432481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432479#factFINAL assume true; 432475#factEXIT >#74#return; 432470#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 432474#$Ultimate##0 ~n := #in~n; 432473#L25 assume !(~n <= 0); 432465#L26 call #t~ret0 := fact(~n - 1);< 432468#$Ultimate##0 ~n := #in~n; 432469#L25 assume ~n <= 0;#res := 1; 432721#factFINAL assume true; 432719#factEXIT >#66#return; 432710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432709#factFINAL assume true; 432546#factEXIT >#76#return; 432523#L30-7 [2023-02-17 09:42:38,184 INFO L750 eck$LassoCheckResult]: Loop: 432523#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432527#$Ultimate##0 ~n := #in~n; 432525#L25 assume !(~n <= 0); 432490#L26 call #t~ret0 := fact(~n - 1);< 432522#$Ultimate##0 ~n := #in~n; 432516#L25 assume !(~n <= 0); 432498#L26 call #t~ret0 := fact(~n - 1);< 432501#$Ultimate##0 ~n := #in~n; 432517#L25 assume !(~n <= 0); 432509#L26 call #t~ret0 := fact(~n - 1);< 432511#$Ultimate##0 ~n := #in~n; 432531#L25 assume !(~n <= 0); 432519#L26 call #t~ret0 := fact(~n - 1);< 432520#$Ultimate##0 ~n := #in~n; 432529#L25 assume ~n <= 0;#res := 1; 432528#factFINAL assume true; 432518#factEXIT >#66#return; 432515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432514#factFINAL assume true; 432508#factEXIT >#66#return; 432506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432504#factFINAL assume true; 432497#factEXIT >#66#return; 432496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432493#factFINAL assume true; 432488#factEXIT >#66#return; 432491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432537#factFINAL assume true; 432536#factEXIT >#78#return; 431603#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433700#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 433629#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433627#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 433626#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 433623#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 433622#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433611#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431353#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433609#$Ultimate##0 ~n := #in~n; 433655#L25 assume !(~n <= 0); 431456#L26 call #t~ret0 := fact(~n - 1);< 433653#$Ultimate##0 ~n := #in~n; 433309#L25 assume !(~n <= 0); 431458#L26 call #t~ret0 := fact(~n - 1);< 433668#$Ultimate##0 ~n := #in~n; 433731#L25 assume ~n <= 0;#res := 1; 433729#factFINAL assume true; 433667#factEXIT >#66#return; 433665#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433660#factFINAL assume true; 433651#factEXIT >#66#return; 433650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433649#factFINAL assume true; 433608#factEXIT >#68#return; 433259#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431500#$Ultimate##0 ~n := #in~n; 433292#L25 assume ~n <= 0;#res := 1; 433289#factFINAL assume true; 433252#factEXIT >#70#return; 433270#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433401#$Ultimate##0 ~n := #in~n; 433420#L25 assume !(~n <= 0); 433409#L26 call #t~ret0 := fact(~n - 1);< 433414#$Ultimate##0 ~n := #in~n; 433306#L25 assume !(~n <= 0); 433423#L26 call #t~ret0 := fact(~n - 1);< 433424#$Ultimate##0 ~n := #in~n; 433429#L25 assume ~n <= 0;#res := 1; 433428#factFINAL assume true; 433422#factEXIT >#66#return; 433421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433415#factFINAL assume true; 433405#factEXIT >#66#return; 433404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433403#factFINAL assume true; 433399#factEXIT >#72#return; 433400#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433591#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 433590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433589#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433588#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432960#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433377#$Ultimate##0 ~n := #in~n; 433464#L25 assume !(~n <= 0); 432780#L26 call #t~ret0 := fact(~n - 1);< 432931#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433376#factFINAL assume true; 433375#factEXIT >#68#return; 433026#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433060#$Ultimate##0 ~n := #in~n; 433059#L25 assume !(~n <= 0); 432794#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433230#factFINAL assume true; 433153#factEXIT >#70#return; 433122#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433246#$Ultimate##0 ~n := #in~n; 433244#L25 assume !(~n <= 0); 433211#L26 call #t~ret0 := fact(~n - 1);< 433215#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433390#factFINAL assume true; 433389#factEXIT >#72#return; 433148#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433387#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 433383#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433384#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433380#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432953#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 433377#$Ultimate##0 ~n := #in~n; 433464#L25 assume !(~n <= 0); 432780#L26 call #t~ret0 := fact(~n - 1);< 432931#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433376#factFINAL assume true; 433375#factEXIT >#68#return; 433037#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 433060#$Ultimate##0 ~n := #in~n; 433059#L25 assume !(~n <= 0); 432794#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433230#factFINAL assume true; 433153#factEXIT >#70#return; 433091#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433246#$Ultimate##0 ~n := #in~n; 433244#L25 assume ~n <= 0;#res := 1; 433223#factFINAL assume true; 433069#factEXIT >#72#return; 433137#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433362#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 434038#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434036#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 434035#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 432735#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431345#$Ultimate##0 ~n := #in~n; 433323#L25 assume !(~n <= 0); 432791#L26 call #t~ret0 := fact(~n - 1);< 432931#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432804#factFINAL assume true; 432768#factEXIT >#66#return; 432743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432742#factFINAL assume true; 432725#factEXIT >#74#return; 432629#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431523#$Ultimate##0 ~n := #in~n; 433064#L25 assume !(~n <= 0); 432778#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433326#L25 assume !(~n <= 0); 432771#L26 call #t~ret0 := fact(~n - 1);< 432901#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433206#factFINAL assume true; 432977#factEXIT >#76#return; 432754#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432802#$Ultimate##0 ~n := #in~n; 433285#L25 assume !(~n <= 0); 432831#L26 call #t~ret0 := fact(~n - 1);< 433216#$Ultimate##0 ~n := #in~n; 433226#L25 assume ~n <= 0;#res := 1; 433239#factFINAL assume true; 433210#factEXIT >#66#return; 433209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432801#factFINAL assume true; 432744#factEXIT >#78#return; 432759#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 434026#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 434025#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 434023#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433325#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431344#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431345#$Ultimate##0 ~n := #in~n; 433323#L25 assume !(~n <= 0); 432791#L26 call #t~ret0 := fact(~n - 1);< 432931#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432804#factFINAL assume true; 432768#factEXIT >#66#return; 432797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433227#factFINAL assume true; 433218#factEXIT >#66#return; 433220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433241#factFINAL assume true; 432803#factEXIT >#74#return; 432589#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431523#$Ultimate##0 ~n := #in~n; 433064#L25 assume !(~n <= 0); 432778#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433326#L25 assume !(~n <= 0); 432771#L26 call #t~ret0 := fact(~n - 1);< 432901#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433206#factFINAL assume true; 432977#factEXIT >#76#return; 432756#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 432802#$Ultimate##0 ~n := #in~n; 433285#L25 assume !(~n <= 0); 432831#L26 call #t~ret0 := fact(~n - 1);< 433216#$Ultimate##0 ~n := #in~n; 432992#L25 assume !(~n <= 0); 432900#L26 call #t~ret0 := fact(~n - 1);< 432902#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433206#factFINAL assume true; 432977#factEXIT >#78#return; 432984#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433968#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 433967#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433966#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 433965#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431519#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 431505#$Ultimate##0 ~n := #in~n; 431517#L25 assume !(~n <= 0); 431498#L26 call #t~ret0 := fact(~n - 1);< 432881#$Ultimate##0 ~n := #in~n; 431497#L25 assume !(~n <= 0); 431499#L26 call #t~ret0 := fact(~n - 1);< 433222#$Ultimate##0 ~n := #in~n; 433314#L25 assume !(~n <= 0); 432781#L26 call #t~ret0 := fact(~n - 1);< 432931#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 433005#L25 assume !(~n <= 0); 432785#L26 call #t~ret0 := fact(~n - 1);< 432930#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432804#factFINAL assume true; 432768#factEXIT >#66#return; 432797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433227#factFINAL assume true; 433218#factEXIT >#66#return; 433217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433011#factFINAL assume true; 432997#factEXIT >#66#return; 433000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433310#factFINAL assume true; 432562#factEXIT >#74#return; 432615#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 431523#$Ultimate##0 ~n := #in~n; 433064#L25 assume !(~n <= 0); 432778#L26 call #t~ret0 := fact(~n - 1);< 433019#$Ultimate##0 ~n := #in~n; 433326#L25 assume !(~n <= 0); 432771#L26 call #t~ret0 := fact(~n - 1);< 432901#$Ultimate##0 ~n := #in~n; 433208#L25 assume !(~n <= 0); 432770#L26 call #t~ret0 := fact(~n - 1);< 432994#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432804#factFINAL assume true; 432768#factEXIT >#66#return; 432743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432742#factFINAL assume true; 432725#factEXIT >#76#return; 432701#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 433063#$Ultimate##0 ~n := #in~n; 433062#L25 assume !(~n <= 0); 432772#L26 call #t~ret0 := fact(~n - 1);< 432856#$Ultimate##0 ~n := #in~n; 433208#L25 assume !(~n <= 0); 432770#L26 call #t~ret0 := fact(~n - 1);< 432994#$Ultimate##0 ~n := #in~n; 432991#L25 assume ~n <= 0;#res := 1; 432990#factFINAL assume true; 432899#factEXIT >#66#return; 432866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432845#factFINAL assume true; 432826#factEXIT >#66#return; 432833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 433206#factFINAL assume true; 432977#factEXIT >#78#return; 432989#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 433963#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 433962#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 433961#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 432708#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 431538#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 432478#$Ultimate##0 ~n := #in~n; 432722#L25 assume !(~n <= 0); 432453#L26 call #t~ret0 := fact(~n - 1);< 432716#$Ultimate##0 ~n := #in~n; 432714#L25 assume !(~n <= 0); 432451#L26 call #t~ret0 := fact(~n - 1);< 432713#$Ultimate##0 ~n := #in~n; 432712#L25 assume !(~n <= 0); 432438#L26 call #t~ret0 := fact(~n - 1);< 432512#$Ultimate##0 ~n := #in~n; 432530#L25 assume !(~n <= 0); 432442#L26 call #t~ret0 := fact(~n - 1);< 432521#$Ultimate##0 ~n := #in~n; 432530#L25 assume !(~n <= 0); 432442#L26 call #t~ret0 := fact(~n - 1);< 432521#$Ultimate##0 ~n := #in~n; 432529#L25 assume ~n <= 0;#res := 1; 432528#factFINAL assume true; 432518#factEXIT >#66#return; 432515#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432514#factFINAL assume true; 432508#factEXIT >#66#return; 432506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432504#factFINAL assume true; 432497#factEXIT >#66#return; 432496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432493#factFINAL assume true; 432488#factEXIT >#66#return; 432487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432485#factFINAL assume true; 432482#factEXIT >#66#return; 432481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432479#factFINAL assume true; 432475#factEXIT >#74#return; 432471#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 432474#$Ultimate##0 ~n := #in~n; 432473#L25 assume !(~n <= 0); 432465#L26 call #t~ret0 := fact(~n - 1);< 432468#$Ultimate##0 ~n := #in~n; 432469#L25 assume ~n <= 0;#res := 1; 432721#factFINAL assume true; 432719#factEXIT >#66#return; 432710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 432709#factFINAL assume true; 432546#factEXIT >#76#return; 432523#L30-7 [2023-02-17 09:42:38,185 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:38,185 INFO L85 PathProgramCache]: Analyzing trace with hash -276971051, now seen corresponding path program 34 times [2023-02-17 09:42:38,185 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:38,186 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [212005040] [2023-02-17 09:42:38,186 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:38,186 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:38,207 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:38,207 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [638143340] [2023-02-17 09:42:38,207 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:38,207 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:38,208 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:38,212 INFO L229 MonitoredProcess]: Starting monitored process 217 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:38,213 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (217)] Waiting until timeout for monitored process [2023-02-17 09:42:38,887 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:38,887 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:38,892 INFO L263 TraceCheckSpWp]: Trace formula consists of 1336 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:42:38,895 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:38,949 INFO L134 CoverageAnalysis]: Checked inductivity of 21771 backedges. 10551 proven. 24 refuted. 0 times theorem prover too weak. 11196 trivial. 0 not checked. [2023-02-17 09:42:38,949 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:39,088 INFO L134 CoverageAnalysis]: Checked inductivity of 21771 backedges. 697 proven. 1011 refuted. 0 times theorem prover too weak. 20063 trivial. 0 not checked. [2023-02-17 09:42:39,088 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:39,089 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [212005040] [2023-02-17 09:42:39,089 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:39,089 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [638143340] [2023-02-17 09:42:39,089 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [638143340] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:39,089 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:39,089 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 24 [2023-02-17 09:42:39,089 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1302471754] [2023-02-17 09:42:39,089 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:39,090 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:39,090 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:39,090 INFO L85 PathProgramCache]: Analyzing trace with hash 1438245125, now seen corresponding path program 28 times [2023-02-17 09:42:39,090 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:39,090 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [75965258] [2023-02-17 09:42:39,090 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:39,090 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:39,103 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:39,104 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [191455500] [2023-02-17 09:42:39,104 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:39,104 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:39,104 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:39,107 INFO L229 MonitoredProcess]: Starting monitored process 218 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:39,107 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (218)] Waiting until timeout for monitored process [2023-02-17 09:42:39,733 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:39,734 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:39,737 INFO L263 TraceCheckSpWp]: Trace formula consists of 905 conjuncts, 10 conjunts are in the unsatisfiable core [2023-02-17 09:42:39,739 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:39,761 INFO L134 CoverageAnalysis]: Checked inductivity of 10675 backedges. 5164 proven. 6 refuted. 0 times theorem prover too weak. 5505 trivial. 0 not checked. [2023-02-17 09:42:39,761 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:39,896 INFO L134 CoverageAnalysis]: Checked inductivity of 10675 backedges. 232 proven. 319 refuted. 0 times theorem prover too weak. 10124 trivial. 0 not checked. [2023-02-17 09:42:39,896 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:39,896 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [75965258] [2023-02-17 09:42:39,897 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:39,897 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [191455500] [2023-02-17 09:42:39,897 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [191455500] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:39,897 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:39,897 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 11 [2023-02-17 09:42:39,897 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1060479984] [2023-02-17 09:42:39,897 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:39,897 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:39,897 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:39,898 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2023-02-17 09:42:39,898 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=82, Unknown=0, NotChecked=0, Total=110 [2023-02-17 09:42:39,898 INFO L87 Difference]: Start difference. First operand 2999 states and 6367 transitions. cyclomatic complexity: 3395 Second operand has 11 states, 10 states have (on average 4.5) internal successors, (45), 11 states have internal predecessors, (45), 7 states have call successors, (21), 2 states have call predecessors, (21), 4 states have return successors, (21), 6 states have call predecessors, (21), 7 states have call successors, (21) [2023-02-17 09:42:40,061 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:40,061 INFO L93 Difference]: Finished difference Result 2975 states and 6131 transitions. [2023-02-17 09:42:40,061 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2975 states and 6131 transitions. [2023-02-17 09:42:40,078 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 858 [2023-02-17 09:42:40,094 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2975 states to 2669 states and 5319 transitions. [2023-02-17 09:42:40,094 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 478 [2023-02-17 09:42:40,094 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 531 [2023-02-17 09:42:40,094 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2669 states and 5319 transitions. [2023-02-17 09:42:40,094 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:40,094 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2669 states and 5319 transitions. [2023-02-17 09:42:40,095 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2669 states and 5319 transitions. [2023-02-17 09:42:40,129 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2669 to 2662. [2023-02-17 09:42:40,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2662 states, 1571 states have (on average 1.0464672183322725) internal successors, (1644), 1558 states have internal predecessors, (1644), 839 states have call successors, (860), 326 states have call predecessors, (860), 252 states have return successors, (2803), 777 states have call predecessors, (2803), 839 states have call successors, (2803) [2023-02-17 09:42:40,140 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2662 states to 2662 states and 5307 transitions. [2023-02-17 09:42:40,140 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2662 states and 5307 transitions. [2023-02-17 09:42:40,140 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2023-02-17 09:42:40,140 INFO L428 stractBuchiCegarLoop]: Abstraction has 2662 states and 5307 transitions. [2023-02-17 09:42:40,140 INFO L335 stractBuchiCegarLoop]: ======== Iteration 58 ============ [2023-02-17 09:42:40,141 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2662 states and 5307 transitions. [2023-02-17 09:42:40,147 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 856 [2023-02-17 09:42:40,147 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:40,147 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:40,148 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [96, 96, 61, 61, 61, 61, 35, 12, 11, 9, 9, 9, 9, 9, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:40,148 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [74, 74, 53, 53, 53, 53, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:40,149 INFO L748 eck$LassoCheckResult]: Stem: 443503#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 443454#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 443455#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 443474#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 443504#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 444356#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444355#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444353#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444354#$Ultimate##0 ~n := #in~n; 444358#L25 assume ~n <= 0;#res := 1; 444357#factFINAL assume true; 444352#factEXIT >#68#return; 444350#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 444351#$Ultimate##0 ~n := #in~n; 444360#L25 assume ~n <= 0;#res := 1; 444359#factFINAL assume true; 444349#factEXIT >#70#return; 444347#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444348#$Ultimate##0 ~n := #in~n; 444366#L25 assume ~n <= 0;#res := 1; 444363#factFINAL assume true; 444346#factEXIT >#72#return; 444344#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 444313#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 444312#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 444311#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444310#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444204#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444205#$Ultimate##0 ~n := #in~n; 444230#L25 assume !(~n <= 0); 444225#L26 call #t~ret0 := fact(~n - 1);< 444228#$Ultimate##0 ~n := #in~n; 444233#L25 assume ~n <= 0;#res := 1; 444231#factFINAL assume true; 444224#factEXIT >#66#return; 444222#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444221#factFINAL assume true; 444203#factEXIT >#74#return; 444201#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 444202#$Ultimate##0 ~n := #in~n; 444229#L25 assume ~n <= 0;#res := 1; 444223#factFINAL assume true; 444200#factEXIT >#76#return; 444198#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444199#$Ultimate##0 ~n := #in~n; 444232#L25 assume !(~n <= 0); 444226#L26 call #t~ret0 := fact(~n - 1);< 444228#$Ultimate##0 ~n := #in~n; 444233#L25 assume ~n <= 0;#res := 1; 444231#factFINAL assume true; 444224#factEXIT >#66#return; 444227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444234#factFINAL assume true; 444197#factEXIT >#78#return; 444195#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 444194#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 444192#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 444186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444184#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444171#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444173#$Ultimate##0 ~n := #in~n; 444182#L25 assume !(~n <= 0); 444180#L26 call #t~ret0 := fact(~n - 1);< 444181#$Ultimate##0 ~n := #in~n; 444193#L25 assume !(~n <= 0); 444179#L26 call #t~ret0 := fact(~n - 1);< 444191#$Ultimate##0 ~n := #in~n; 444253#L25 assume ~n <= 0;#res := 1; 444252#factFINAL assume true; 444241#factEXIT >#66#return; 444239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444235#factFINAL assume true; 444187#factEXIT >#66#return; 444190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444249#factFINAL assume true; 444248#factEXIT >#74#return; 444246#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 444247#$Ultimate##0 ~n := #in~n; 444251#L25 assume ~n <= 0;#res := 1; 444250#factFINAL assume true; 444245#factEXIT >#76#return; 444236#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444240#$Ultimate##0 ~n := #in~n; 444238#L25 assume !(~n <= 0); 444188#L26 call #t~ret0 := fact(~n - 1);< 444237#$Ultimate##0 ~n := #in~n; 444244#L25 assume !(~n <= 0); 444242#L26 call #t~ret0 := fact(~n - 1);< 444243#$Ultimate##0 ~n := #in~n; 444253#L25 assume ~n <= 0;#res := 1; 444252#factFINAL assume true; 444241#factEXIT >#66#return; 444239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444235#factFINAL assume true; 444187#factEXIT >#66#return; 444189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444370#factFINAL assume true; 444369#factEXIT >#78#return; 444368#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 444365#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 444362#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 444309#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444308#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444172#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444173#$Ultimate##0 ~n := #in~n; 444182#L25 assume !(~n <= 0); 444180#L26 call #t~ret0 := fact(~n - 1);< 444181#$Ultimate##0 ~n := #in~n; 444193#L25 assume !(~n <= 0); 444179#L26 call #t~ret0 := fact(~n - 1);< 444191#$Ultimate##0 ~n := #in~n; 444193#L25 assume !(~n <= 0); 444179#L26 call #t~ret0 := fact(~n - 1);< 444191#$Ultimate##0 ~n := #in~n; 444253#L25 assume ~n <= 0;#res := 1; 444252#factFINAL assume true; 444241#factEXIT >#66#return; 444239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444235#factFINAL assume true; 444187#factEXIT >#66#return; 444185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444183#factFINAL assume true; 444178#factEXIT >#66#return; 444176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444174#factFINAL assume true; 444170#factEXIT >#74#return; 444168#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 444169#$Ultimate##0 ~n := #in~n; 444177#L25 assume ~n <= 0;#res := 1; 444175#factFINAL assume true; 444167#factEXIT >#76#return; 444165#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444166#$Ultimate##0 ~n := #in~n; 444264#L25 assume !(~n <= 0); 444257#L26 call #t~ret0 := fact(~n - 1);< 444262#$Ultimate##0 ~n := #in~n; 444342#L25 assume !(~n <= 0); 444260#L26 call #t~ret0 := fact(~n - 1);< 444295#$Ultimate##0 ~n := #in~n; 444345#L25 assume !(~n <= 0); 444258#L26 call #t~ret0 := fact(~n - 1);< 444324#$Ultimate##0 ~n := #in~n; 444364#L25 assume ~n <= 0;#res := 1; 444361#factFINAL assume true; 444323#factEXIT >#66#return; 444321#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444319#factFINAL assume true; 444318#factEXIT >#66#return; 444317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444316#factFINAL assume true; 444256#factEXIT >#66#return; 444255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444254#factFINAL assume true; 444164#factEXIT >#78#return; 444162#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 444161#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 444160#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 444159#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444157#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444154#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444155#$Ultimate##0 ~n := #in~n; 444303#L25 assume !(~n <= 0); 444259#L26 call #t~ret0 := fact(~n - 1);< 444295#$Ultimate##0 ~n := #in~n; 444345#L25 assume !(~n <= 0); 444258#L26 call #t~ret0 := fact(~n - 1);< 444324#$Ultimate##0 ~n := #in~n; 444345#L25 assume !(~n <= 0); 444258#L26 call #t~ret0 := fact(~n - 1);< 444324#$Ultimate##0 ~n := #in~n; 444345#L25 assume !(~n <= 0); 444258#L26 call #t~ret0 := fact(~n - 1);< 444324#$Ultimate##0 ~n := #in~n; 444364#L25 assume ~n <= 0;#res := 1; 444361#factFINAL assume true; 444323#factEXIT >#66#return; 444321#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444319#factFINAL assume true; 444318#factEXIT >#66#return; 444317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444316#factFINAL assume true; 444256#factEXIT >#66#return; 444261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444302#factFINAL assume true; 444294#factEXIT >#66#return; 444293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444292#factFINAL assume true; 444153#factEXIT >#74#return; 443856#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443862#$Ultimate##0 ~n := #in~n; 444266#L25 assume ~n <= 0;#res := 1; 444265#factFINAL assume true; 444263#factEXIT >#76#return; 443823#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 443824#$Ultimate##0 ~n := #in~n; 444273#L25 assume !(~n <= 0); 443881#L26 call #t~ret0 := fact(~n - 1);< 444272#$Ultimate##0 ~n := #in~n; 444315#L25 assume !(~n <= 0); 443890#L26 call #t~ret0 := fact(~n - 1);< 443936#$Ultimate##0 ~n := #in~n; 444288#L25 assume !(~n <= 0); 443878#L26 call #t~ret0 := fact(~n - 1);< 444287#$Ultimate##0 ~n := #in~n; 444291#L25 assume ~n <= 0;#res := 1; 444289#factFINAL assume true; 444286#factEXIT >#66#return; 444285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444278#factFINAL assume true; 444277#factEXIT >#66#return; 444275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444274#factFINAL assume true; 444270#factEXIT >#66#return; 443947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444268#factFINAL assume true; 443822#factEXIT >#78#return; 443820#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 443817#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 443813#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 443811#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 443807#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 443795#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 443796#$Ultimate##0 ~n := #in~n; 443810#L25 assume !(~n <= 0); 443805#L26 call #t~ret0 := fact(~n - 1);< 443806#$Ultimate##0 ~n := #in~n; 443819#L25 assume !(~n <= 0); 443815#L26 call #t~ret0 := fact(~n - 1);< 443816#$Ultimate##0 ~n := #in~n; 443830#L25 assume !(~n <= 0); 443827#L26 call #t~ret0 := fact(~n - 1);< 443828#$Ultimate##0 ~n := #in~n; 443835#L25 assume !(~n <= 0); 443826#L26 call #t~ret0 := fact(~n - 1);< 443833#$Ultimate##0 ~n := #in~n; 443835#L25 assume !(~n <= 0); 443826#L26 call #t~ret0 := fact(~n - 1);< 443833#$Ultimate##0 ~n := #in~n; 443835#L25 assume !(~n <= 0); 443826#L26 call #t~ret0 := fact(~n - 1);< 443833#$Ultimate##0 ~n := #in~n; 443835#L25 assume !(~n <= 0); 443826#L26 call #t~ret0 := fact(~n - 1);< 443833#$Ultimate##0 ~n := #in~n; 443845#L25 assume ~n <= 0;#res := 1; 443844#factFINAL assume true; 443843#factEXIT >#66#return; 443842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443841#factFINAL assume true; 443840#factEXIT >#66#return; 443839#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443838#factFINAL assume true; 443837#factEXIT >#66#return; 443836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443834#factFINAL assume true; 443832#factEXIT >#66#return; 443831#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443829#factFINAL assume true; 443825#factEXIT >#66#return; 443821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443818#factFINAL assume true; 443814#factEXIT >#66#return; 443812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443809#factFINAL assume true; 443804#factEXIT >#66#return; 443802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443801#factFINAL assume true; 443794#factEXIT >#74#return; 443680#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443681#$Ultimate##0 ~n := #in~n; 443722#L25 assume ~n <= 0;#res := 1; 443717#factFINAL assume true; 443679#factEXIT >#76#return; 443644#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 443669#$Ultimate##0 ~n := #in~n; 443664#L25 assume !(~n <= 0); 443634#L26 call #t~ret0 := fact(~n - 1);< 443645#$Ultimate##0 ~n := #in~n; 443705#L25 assume !(~n <= 0); 443633#L26 call #t~ret0 := fact(~n - 1);< 443660#$Ultimate##0 ~n := #in~n; 443704#L25 assume !(~n <= 0); 443625#L26 call #t~ret0 := fact(~n - 1);< 443663#$Ultimate##0 ~n := #in~n; 443753#L25 assume !(~n <= 0); 443624#L26 call #t~ret0 := fact(~n - 1);< 443678#$Ultimate##0 ~n := #in~n; 443772#L25 assume !(~n <= 0); 443632#L26 call #t~ret0 := fact(~n - 1);< 443748#$Ultimate##0 ~n := #in~n; 443780#L25 assume !(~n <= 0); 443631#L26 call #t~ret0 := fact(~n - 1);< 443658#$Ultimate##0 ~n := #in~n; 443770#L25 assume !(~n <= 0); 443629#L26 call #t~ret0 := fact(~n - 1);< 443758#$Ultimate##0 ~n := #in~n; 443778#L25 assume ~n <= 0;#res := 1; 443775#factFINAL assume true; 443757#factEXIT >#66#return; 443755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443754#factFINAL assume true; 443752#factEXIT >#66#return; 443751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443750#factFINAL assume true; 443747#factEXIT >#66#return; 443746#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443745#factFINAL assume true; 443677#factEXIT >#66#return; 443670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443665#factFINAL assume true; 443662#factEXIT >#66#return; 443661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443659#factFINAL assume true; 443656#factEXIT >#66#return; 443655#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 443651#factFINAL assume true; 443648#factEXIT >#66#return; 443639#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445321#factFINAL assume true; 445317#factEXIT >#78#return; 443607#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445312#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 445309#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445306#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 445290#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 445287#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 445283#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445281#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 445264#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 445277#$Ultimate##0 ~n := #in~n; 445289#L25 assume !(~n <= 0); 445285#L26 call #t~ret0 := fact(~n - 1);< 445286#$Ultimate##0 ~n := #in~n; 445291#L25 assume ~n <= 0;#res := 1; 445288#factFINAL assume true; 445284#factEXIT >#66#return; 445282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445280#factFINAL assume true; 445276#factEXIT >#68#return; 445261#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 445274#$Ultimate##0 ~n := #in~n; 445278#L25 assume ~n <= 0;#res := 1; 445275#factFINAL assume true; 445254#factEXIT >#70#return; 445221#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 445222#$Ultimate##0 ~n := #in~n; 445234#L25 assume !(~n <= 0); 445231#L26 call #t~ret0 := fact(~n - 1);< 445232#$Ultimate##0 ~n := #in~n; 445237#L25 assume ~n <= 0;#res := 1; 445236#factFINAL assume true; 445230#factEXIT >#66#return; 445229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445228#factFINAL assume true; 445220#factEXIT >#72#return; 445219#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445217#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 445216#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445215#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445214#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 445200#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 445212#$Ultimate##0 ~n := #in~n; 445233#L25 assume !(~n <= 0); 444805#L26 call #t~ret0 := fact(~n - 1);< 444888#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445224#factFINAL assume true; 445167#factEXIT >#68#return; 445088#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443494#$Ultimate##0 ~n := #in~n; 445241#L25 assume !(~n <= 0); 444804#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445224#factFINAL assume true; 445167#factEXIT >#70#return; 445137#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 445165#$Ultimate##0 ~n := #in~n; 445240#L25 assume ~n <= 0;#res := 1; 444993#factFINAL assume true; 445128#factEXIT >#72#return; 445026#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445018#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 444990#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 444988#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444987#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444640#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444792#$Ultimate##0 ~n := #in~n; 444944#L25 assume !(~n <= 0); 444799#L26 call #t~ret0 := fact(~n - 1);< 444888#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444994#factFINAL assume true; 444964#factEXIT >#74#return; 444649#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443500#$Ultimate##0 ~n := #in~n; 445089#L25 assume !(~n <= 0); 444806#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444775#factFINAL assume true; 444750#factEXIT >#76#return; 444755#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 445238#$Ultimate##0 ~n := #in~n; 445314#L25 assume !(~n <= 0); 444800#L26 call #t~ret0 := fact(~n - 1);< 444809#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444775#factFINAL assume true; 444750#factEXIT >#78#return; 444764#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445042#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 445041#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445040#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445038#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444739#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 443431#$Ultimate##0 ~n := #in~n; 445248#L25 assume !(~n <= 0); 444852#L26 call #t~ret0 := fact(~n - 1);< 445099#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445016#factFINAL assume true; 444734#factEXIT >#74#return; 444665#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443500#$Ultimate##0 ~n := #in~n; 445089#L25 assume !(~n <= 0); 444806#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444775#factFINAL assume true; 444750#factEXIT >#76#return; 444757#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444976#$Ultimate##0 ~n := #in~n; 445045#L25 assume !(~n <= 0); 444801#L26 call #t~ret0 := fact(~n - 1);< 445037#$Ultimate##0 ~n := #in~n; 445245#L25 assume !(~n <= 0); 445206#L26 call #t~ret0 := fact(~n - 1);< 445209#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444994#factFINAL assume true; 444964#factEXIT >#78#return; 444904#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 444837#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 444810#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 444793#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444791#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444742#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 443431#$Ultimate##0 ~n := #in~n; 445248#L25 assume !(~n <= 0); 444852#L26 call #t~ret0 := fact(~n - 1);< 445099#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444905#factFINAL assume true; 444838#factEXIT >#66#return; 444811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444778#factFINAL assume true; 444776#factEXIT >#74#return; 444675#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443500#$Ultimate##0 ~n := #in~n; 445089#L25 assume !(~n <= 0); 444806#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444775#factFINAL assume true; 444750#factEXIT >#76#return; 444744#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444749#$Ultimate##0 ~n := #in~n; 445415#L25 assume !(~n <= 0); 444857#L26 call #t~ret0 := fact(~n - 1);< 444865#$Ultimate##0 ~n := #in~n; 445223#L25 assume !(~n <= 0); 444980#L26 call #t~ret0 := fact(~n - 1);< 445094#$Ultimate##0 ~n := #in~n; 445246#L25 assume !(~n <= 0); 445032#L26 call #t~ret0 := fact(~n - 1);< 445210#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445016#factFINAL assume true; 444734#factEXIT >#78#return; 444577#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 444573#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 444570#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 444561#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 444562#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 443551#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444476#$Ultimate##0 ~n := #in~n; 444537#L25 assume !(~n <= 0); 444455#L26 call #t~ret0 := fact(~n - 1);< 444534#$Ultimate##0 ~n := #in~n; 444531#L25 assume !(~n <= 0); 444446#L26 call #t~ret0 := fact(~n - 1);< 444528#$Ultimate##0 ~n := #in~n; 444527#L25 assume !(~n <= 0); 444453#L26 call #t~ret0 := fact(~n - 1);< 444510#$Ultimate##0 ~n := #in~n; 444524#L25 assume !(~n <= 0); 444449#L26 call #t~ret0 := fact(~n - 1);< 444520#$Ultimate##0 ~n := #in~n; 444524#L25 assume !(~n <= 0); 444449#L26 call #t~ret0 := fact(~n - 1);< 444520#$Ultimate##0 ~n := #in~n; 444526#L25 assume ~n <= 0;#res := 1; 444522#factFINAL assume true; 444517#factEXIT >#66#return; 444516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444514#factFINAL assume true; 444506#factEXIT >#66#return; 444504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444501#factFINAL assume true; 444494#factEXIT >#66#return; 444493#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444490#factFINAL assume true; 444485#factEXIT >#66#return; 444484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444482#factFINAL assume true; 444479#factEXIT >#66#return; 444478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444477#factFINAL assume true; 444473#factEXIT >#74#return; 444469#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 444472#$Ultimate##0 ~n := #in~n; 444471#L25 assume !(~n <= 0); 444463#L26 call #t~ret0 := fact(~n - 1);< 444466#$Ultimate##0 ~n := #in~n; 444467#L25 assume ~n <= 0;#res := 1; 444556#factFINAL assume true; 444549#factEXIT >#66#return; 444547#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444544#factFINAL assume true; 444543#factEXIT >#76#return; 444533#L30-7 [2023-02-17 09:42:40,149 INFO L750 eck$LassoCheckResult]: Loop: 444533#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444536#$Ultimate##0 ~n := #in~n; 444535#L25 assume !(~n <= 0); 444487#L26 call #t~ret0 := fact(~n - 1);< 444530#$Ultimate##0 ~n := #in~n; 444529#L25 assume !(~n <= 0); 444496#L26 call #t~ret0 := fact(~n - 1);< 444498#$Ultimate##0 ~n := #in~n; 444512#L25 assume !(~n <= 0); 444507#L26 call #t~ret0 := fact(~n - 1);< 444511#$Ultimate##0 ~n := #in~n; 444523#L25 assume !(~n <= 0); 444518#L26 call #t~ret0 := fact(~n - 1);< 444519#$Ultimate##0 ~n := #in~n; 444526#L25 assume ~n <= 0;#res := 1; 444522#factFINAL assume true; 444517#factEXIT >#66#return; 444516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444514#factFINAL assume true; 444506#factEXIT >#66#return; 444504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444501#factFINAL assume true; 444494#factEXIT >#66#return; 444493#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444490#factFINAL assume true; 444485#factEXIT >#66#return; 444488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444564#factFINAL assume true; 444559#factEXIT >#78#return; 443599#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445742#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 445741#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445740#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 445739#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 445738#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 445737#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445736#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 445553#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 445595#$Ultimate##0 ~n := #in~n; 445608#L25 assume !(~n <= 0); 445569#L26 call #t~ret0 := fact(~n - 1);< 445605#$Ultimate##0 ~n := #in~n; 445307#L25 assume !(~n <= 0); 445566#L26 call #t~ret0 := fact(~n - 1);< 445620#$Ultimate##0 ~n := #in~n; 445630#L25 assume ~n <= 0;#res := 1; 445629#factFINAL assume true; 445619#factEXIT >#66#return; 445618#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445615#factFINAL assume true; 445603#factEXIT >#66#return; 445601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445599#factFINAL assume true; 445594#factEXIT >#68#return; 445265#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 445274#$Ultimate##0 ~n := #in~n; 445278#L25 assume ~n <= 0;#res := 1; 445275#factFINAL assume true; 445254#factEXIT >#70#return; 443487#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 445484#$Ultimate##0 ~n := #in~n; 443486#L25 assume !(~n <= 0); 443489#L26 call #t~ret0 := fact(~n - 1);< 443530#$Ultimate##0 ~n := #in~n; 445239#L25 assume !(~n <= 0); 445517#L26 call #t~ret0 := fact(~n - 1);< 445519#$Ultimate##0 ~n := #in~n; 445530#L25 assume ~n <= 0;#res := 1; 445529#factFINAL assume true; 445516#factEXIT >#66#return; 445513#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445508#factFINAL assume true; 445498#factEXIT >#66#return; 445496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445493#factFINAL assume true; 445482#factEXIT >#72#return; 445457#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445455#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 445452#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445449#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445446#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 445119#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 445121#$Ultimate##0 ~n := #in~n; 445120#L25 assume !(~n <= 0); 444860#L26 call #t~ret0 := fact(~n - 1);< 445099#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445411#factFINAL assume true; 445359#factEXIT >#68#return; 445055#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443494#$Ultimate##0 ~n := #in~n; 445241#L25 assume !(~n <= 0); 444804#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445224#factFINAL assume true; 445167#factEXIT >#70#return; 444823#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 445320#$Ultimate##0 ~n := #in~n; 445316#L25 assume !(~n <= 0); 444802#L26 call #t~ret0 := fact(~n - 1);< 444809#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445721#factFINAL assume true; 445719#factEXIT >#72#return; 445155#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445842#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 445840#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445838#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445837#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 445115#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 445121#$Ultimate##0 ~n := #in~n; 445120#L25 assume !(~n <= 0); 444860#L26 call #t~ret0 := fact(~n - 1);< 445099#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445036#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445411#factFINAL assume true; 445359#factEXIT >#68#return; 445075#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443494#$Ultimate##0 ~n := #in~n; 445241#L25 assume !(~n <= 0); 444804#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 445126#L25 assume !(~n <= 0); 444841#L26 call #t~ret0 := fact(~n - 1);< 445095#$Ultimate##0 ~n := #in~n; 445235#L25 assume !(~n <= 0); 444979#L26 call #t~ret0 := fact(~n - 1);< 445207#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444984#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445407#factFINAL assume true; 445408#factEXIT >#70#return; 445131#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 445165#$Ultimate##0 ~n := #in~n; 445240#L25 assume ~n <= 0;#res := 1; 444993#factFINAL assume true; 445128#factEXIT >#72#return; 445145#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445718#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 445716#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445714#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445711#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444737#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 443431#$Ultimate##0 ~n := #in~n; 445248#L25 assume !(~n <= 0); 444852#L26 call #t~ret0 := fact(~n - 1);< 445099#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444982#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445016#factFINAL assume true; 444734#factEXIT >#74#return; 444634#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443500#$Ultimate##0 ~n := #in~n; 445089#L25 assume !(~n <= 0); 444806#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 445126#L25 assume !(~n <= 0); 444841#L26 call #t~ret0 := fact(~n - 1);< 445095#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444994#factFINAL assume true; 444964#factEXIT >#76#return; 444759#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444976#$Ultimate##0 ~n := #in~n; 445045#L25 assume !(~n <= 0); 444801#L26 call #t~ret0 := fact(~n - 1);< 445037#$Ultimate##0 ~n := #in~n; 444868#L25 assume ~n <= 0;#res := 1; 444816#factFINAL assume true; 444794#factEXIT >#66#return; 444777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444775#factFINAL assume true; 444750#factEXIT >#78#return; 444772#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 445684#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 445412#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 445305#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445293#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444745#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 443431#$Ultimate##0 ~n := #in~n; 445248#L25 assume !(~n <= 0); 444852#L26 call #t~ret0 := fact(~n - 1);< 445099#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444905#factFINAL assume true; 444838#factEXIT >#66#return; 444811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444778#factFINAL assume true; 444776#factEXIT >#74#return; 443499#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 443500#$Ultimate##0 ~n := #in~n; 445089#L25 assume !(~n <= 0); 444806#L26 call #t~ret0 := fact(~n - 1);< 445050#$Ultimate##0 ~n := #in~n; 445126#L25 assume !(~n <= 0); 444841#L26 call #t~ret0 := fact(~n - 1);< 445095#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444994#factFINAL assume true; 444964#factEXIT >#76#return; 444752#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444976#$Ultimate##0 ~n := #in~n; 445045#L25 assume !(~n <= 0); 444801#L26 call #t~ret0 := fact(~n - 1);< 445037#$Ultimate##0 ~n := #in~n; 445245#L25 assume !(~n <= 0); 445206#L26 call #t~ret0 := fact(~n - 1);< 445209#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444994#factFINAL assume true; 444964#factEXIT >#78#return; 444973#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 446014#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 446013#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 446012#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 446011#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 444637#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444814#$Ultimate##0 ~n := #in~n; 445279#L25 assume !(~n <= 0); 444880#L26 call #t~ret0 := fact(~n - 1);< 445253#$Ultimate##0 ~n := #in~n; 445252#L25 assume !(~n <= 0); 444842#L26 call #t~ret0 := fact(~n - 1);< 445251#$Ultimate##0 ~n := #in~n; 445249#L25 assume !(~n <= 0); 444847#L26 call #t~ret0 := fact(~n - 1);< 445099#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444905#factFINAL assume true; 444838#factEXIT >#66#return; 444861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445046#factFINAL assume true; 445019#factEXIT >#66#return; 444991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444946#factFINAL assume true; 444896#factEXIT >#66#return; 444900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444945#factFINAL assume true; 444893#factEXIT >#66#return; 444883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444918#factFINAL assume true; 444870#factEXIT >#66#return; 444869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444833#factFINAL assume true; 444780#factEXIT >#74#return; 444660#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 444792#$Ultimate##0 ~n := #in~n; 444944#L25 assume !(~n <= 0); 444799#L26 call #t~ret0 := fact(~n - 1);< 444888#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444995#factFINAL assume true; 444978#factEXIT >#66#return; 444977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444905#factFINAL assume true; 444838#factEXIT >#66#return; 444861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445046#factFINAL assume true; 445019#factEXIT >#66#return; 445020#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445092#factFINAL assume true; 444578#factEXIT >#76#return; 444676#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 444792#$Ultimate##0 ~n := #in~n; 444944#L25 assume !(~n <= 0); 444799#L26 call #t~ret0 := fact(~n - 1);< 444888#$Ultimate##0 ~n := #in~n; 445242#L25 assume !(~n <= 0); 444856#L26 call #t~ret0 := fact(~n - 1);< 445208#$Ultimate##0 ~n := #in~n; 445227#L25 assume ~n <= 0;#res := 1; 445225#factFINAL assume true; 445205#factEXIT >#66#return; 445166#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 445093#factFINAL assume true; 445029#factEXIT >#66#return; 445028#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444994#factFINAL assume true; 444964#factEXIT >#78#return; 444969#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 446009#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 446008#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 446007#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 445617#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 443556#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 444476#$Ultimate##0 ~n := #in~n; 444537#L25 assume !(~n <= 0); 444455#L26 call #t~ret0 := fact(~n - 1);< 444534#$Ultimate##0 ~n := #in~n; 444531#L25 assume !(~n <= 0); 444446#L26 call #t~ret0 := fact(~n - 1);< 444528#$Ultimate##0 ~n := #in~n; 444527#L25 assume !(~n <= 0); 444453#L26 call #t~ret0 := fact(~n - 1);< 444510#$Ultimate##0 ~n := #in~n; 444524#L25 assume !(~n <= 0); 444449#L26 call #t~ret0 := fact(~n - 1);< 444520#$Ultimate##0 ~n := #in~n; 444524#L25 assume !(~n <= 0); 444449#L26 call #t~ret0 := fact(~n - 1);< 444520#$Ultimate##0 ~n := #in~n; 444526#L25 assume ~n <= 0;#res := 1; 444522#factFINAL assume true; 444517#factEXIT >#66#return; 444516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444514#factFINAL assume true; 444506#factEXIT >#66#return; 444504#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444501#factFINAL assume true; 444494#factEXIT >#66#return; 444493#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444490#factFINAL assume true; 444485#factEXIT >#66#return; 444484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444482#factFINAL assume true; 444479#factEXIT >#66#return; 444478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444477#factFINAL assume true; 444473#factEXIT >#74#return; 444468#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 444472#$Ultimate##0 ~n := #in~n; 444471#L25 assume !(~n <= 0); 444463#L26 call #t~ret0 := fact(~n - 1);< 444466#$Ultimate##0 ~n := #in~n; 444465#L25 assume !(~n <= 0); 444462#L26 call #t~ret0 := fact(~n - 1);< 444464#$Ultimate##0 ~n := #in~n; 444526#L25 assume ~n <= 0;#res := 1; 444522#factFINAL assume true; 444517#factEXIT >#66#return; 444516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444514#factFINAL assume true; 444506#factEXIT >#66#return; 444508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 444552#factFINAL assume true; 444542#factEXIT >#76#return; 444533#L30-7 [2023-02-17 09:42:40,149 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:40,149 INFO L85 PathProgramCache]: Analyzing trace with hash 819196637, now seen corresponding path program 35 times [2023-02-17 09:42:40,149 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:40,149 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [412726204] [2023-02-17 09:42:40,150 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:40,150 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:40,166 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:40,166 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1175501962] [2023-02-17 09:42:40,167 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:40,167 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:40,167 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:40,171 INFO L229 MonitoredProcess]: Starting monitored process 219 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:40,172 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (219)] Waiting until timeout for monitored process [2023-02-17 09:42:40,926 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 23 check-sat command(s) [2023-02-17 09:42:40,927 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:40,931 INFO L263 TraceCheckSpWp]: Trace formula consists of 1195 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-17 09:42:40,935 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:41,014 INFO L134 CoverageAnalysis]: Checked inductivity of 22271 backedges. 10712 proven. 230 refuted. 0 times theorem prover too weak. 11329 trivial. 0 not checked. [2023-02-17 09:42:41,014 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:41,229 INFO L134 CoverageAnalysis]: Checked inductivity of 22271 backedges. 688 proven. 1690 refuted. 0 times theorem prover too weak. 19893 trivial. 0 not checked. [2023-02-17 09:42:41,229 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:41,229 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [412726204] [2023-02-17 09:42:41,229 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:41,229 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1175501962] [2023-02-17 09:42:41,229 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1175501962] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:41,229 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:41,230 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 19] total 28 [2023-02-17 09:42:41,230 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1480452521] [2023-02-17 09:42:41,230 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:41,230 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:41,230 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:41,230 INFO L85 PathProgramCache]: Analyzing trace with hash -1348246587, now seen corresponding path program 29 times [2023-02-17 09:42:41,231 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:41,231 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1007506111] [2023-02-17 09:42:41,231 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:41,231 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:41,245 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:41,245 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [735559878] [2023-02-17 09:42:41,245 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:41,245 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:41,245 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:41,248 INFO L229 MonitoredProcess]: Starting monitored process 220 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:41,249 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (220)] Waiting until timeout for monitored process [2023-02-17 09:42:41,860 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 11 check-sat command(s) [2023-02-17 09:42:41,860 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:41,862 INFO L263 TraceCheckSpWp]: Trace formula consists of 434 conjuncts, 12 conjunts are in the unsatisfiable core [2023-02-17 09:42:41,865 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:41,892 INFO L134 CoverageAnalysis]: Checked inductivity of 13675 backedges. 6573 proven. 21 refuted. 0 times theorem prover too weak. 7081 trivial. 0 not checked. [2023-02-17 09:42:41,892 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:41,947 INFO L134 CoverageAnalysis]: Checked inductivity of 13675 backedges. 357 proven. 673 refuted. 0 times theorem prover too weak. 12645 trivial. 0 not checked. [2023-02-17 09:42:41,947 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:41,947 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1007506111] [2023-02-17 09:42:41,947 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:41,948 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [735559878] [2023-02-17 09:42:41,948 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [735559878] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:41,948 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:41,948 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 13 [2023-02-17 09:42:41,948 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1077857861] [2023-02-17 09:42:41,948 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:41,948 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:41,948 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:41,949 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-17 09:42:41,949 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=118, Unknown=0, NotChecked=0, Total=156 [2023-02-17 09:42:41,949 INFO L87 Difference]: Start difference. First operand 2662 states and 5307 transitions. cyclomatic complexity: 2672 Second operand has 13 states, 12 states have (on average 4.166666666666667) internal successors, (50), 13 states have internal predecessors, (50), 9 states have call successors, (23), 2 states have call predecessors, (23), 5 states have return successors, (24), 8 states have call predecessors, (24), 9 states have call successors, (24) [2023-02-17 09:42:42,217 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:42,217 INFO L93 Difference]: Finished difference Result 2648 states and 5087 transitions. [2023-02-17 09:42:42,218 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2648 states and 5087 transitions. [2023-02-17 09:42:42,231 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 844 [2023-02-17 09:42:42,247 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2648 states to 2648 states and 5087 transitions. [2023-02-17 09:42:42,248 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 524 [2023-02-17 09:42:42,248 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 524 [2023-02-17 09:42:42,248 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2648 states and 5087 transitions. [2023-02-17 09:42:42,248 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:42,249 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2648 states and 5087 transitions. [2023-02-17 09:42:42,249 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2648 states and 5087 transitions. [2023-02-17 09:42:42,284 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2648 to 2626. [2023-02-17 09:42:42,286 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2626 states, 1571 states have (on average 1.0464672183322725) internal successors, (1644), 1558 states have internal predecessors, (1644), 803 states have call successors, (824), 326 states have call predecessors, (824), 252 states have return successors, (2583), 741 states have call predecessors, (2583), 803 states have call successors, (2583) [2023-02-17 09:42:42,295 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2626 states to 2626 states and 5051 transitions. [2023-02-17 09:42:42,295 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2626 states and 5051 transitions. [2023-02-17 09:42:42,296 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2023-02-17 09:42:42,296 INFO L428 stractBuchiCegarLoop]: Abstraction has 2626 states and 5051 transitions. [2023-02-17 09:42:42,296 INFO L335 stractBuchiCegarLoop]: ======== Iteration 59 ============ [2023-02-17 09:42:42,296 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2626 states and 5051 transitions. [2023-02-17 09:42:42,302 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 822 [2023-02-17 09:42:42,302 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:42,302 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:42,304 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [95, 95, 60, 60, 60, 60, 35, 12, 11, 9, 9, 9, 9, 9, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:42,304 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [74, 74, 53, 53, 53, 53, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:42,305 INFO L748 eck$LassoCheckResult]: Stem: 455315#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 455257#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 455258#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 455281#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 455316#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 456082#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456080#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456077#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456078#$Ultimate##0 ~n := #in~n; 456083#L25 assume ~n <= 0;#res := 1; 456081#factFINAL assume true; 456076#factEXIT >#68#return; 456072#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456073#$Ultimate##0 ~n := #in~n; 456079#L25 assume ~n <= 0;#res := 1; 456075#factFINAL assume true; 456071#factEXIT >#70#return; 456068#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456069#$Ultimate##0 ~n := #in~n; 456086#L25 assume ~n <= 0;#res := 1; 456084#factFINAL assume true; 456067#factEXIT >#72#return; 456066#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456063#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 456061#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456057#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456054#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456052#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456053#$Ultimate##0 ~n := #in~n; 456065#L25 assume !(~n <= 0); 456040#L26 call #t~ret0 := fact(~n - 1);< 456043#$Ultimate##0 ~n := #in~n; 456074#L25 assume ~n <= 0;#res := 1; 456070#factFINAL assume true; 456039#factEXIT >#66#return; 456042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456056#factFINAL assume true; 456051#factEXIT >#74#return; 456046#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456047#$Ultimate##0 ~n := #in~n; 456055#L25 assume ~n <= 0;#res := 1; 456050#factFINAL assume true; 456045#factEXIT >#76#return; 456032#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456033#$Ultimate##0 ~n := #in~n; 456048#L25 assume !(~n <= 0); 456041#L26 call #t~ret0 := fact(~n - 1);< 456043#$Ultimate##0 ~n := #in~n; 456074#L25 assume ~n <= 0;#res := 1; 456070#factFINAL assume true; 456039#factEXIT >#66#return; 456037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456036#factFINAL assume true; 456031#factEXIT >#78#return; 456029#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456028#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 456018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456008#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456005#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 455969#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 455971#$Ultimate##0 ~n := #in~n; 455987#L25 assume !(~n <= 0); 455982#L26 call #t~ret0 := fact(~n - 1);< 455983#$Ultimate##0 ~n := #in~n; 456003#L25 assume !(~n <= 0); 455981#L26 call #t~ret0 := fact(~n - 1);< 455995#$Ultimate##0 ~n := #in~n; 456034#L25 assume ~n <= 0;#res := 1; 456030#factFINAL assume true; 456025#factEXIT >#66#return; 456024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456021#factFINAL assume true; 455991#factEXIT >#66#return; 455993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456015#factFINAL assume true; 456013#factEXIT >#74#return; 456001#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456002#$Ultimate##0 ~n := #in~n; 456011#L25 assume ~n <= 0;#res := 1; 456010#factFINAL assume true; 456000#factEXIT >#76#return; 455998#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 455999#$Ultimate##0 ~n := #in~n; 456023#L25 assume !(~n <= 0); 455992#L26 call #t~ret0 := fact(~n - 1);< 456022#$Ultimate##0 ~n := #in~n; 456035#L25 assume !(~n <= 0); 456026#L26 call #t~ret0 := fact(~n - 1);< 456027#$Ultimate##0 ~n := #in~n; 456034#L25 assume ~n <= 0;#res := 1; 456030#factFINAL assume true; 456025#factEXIT >#66#return; 456024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456021#factFINAL assume true; 455991#factEXIT >#66#return; 455994#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456009#factFINAL assume true; 455997#factEXIT >#78#return; 455990#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 455988#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 455984#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 455977#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 455974#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 455970#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 455971#$Ultimate##0 ~n := #in~n; 455987#L25 assume !(~n <= 0); 455982#L26 call #t~ret0 := fact(~n - 1);< 455983#$Ultimate##0 ~n := #in~n; 456003#L25 assume !(~n <= 0); 455981#L26 call #t~ret0 := fact(~n - 1);< 455995#$Ultimate##0 ~n := #in~n; 456003#L25 assume !(~n <= 0); 455981#L26 call #t~ret0 := fact(~n - 1);< 455995#$Ultimate##0 ~n := #in~n; 456034#L25 assume ~n <= 0;#res := 1; 456030#factFINAL assume true; 456025#factEXIT >#66#return; 456024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456021#factFINAL assume true; 455991#factEXIT >#66#return; 455989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455986#factFINAL assume true; 455980#factEXIT >#66#return; 455976#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455973#factFINAL assume true; 455968#factEXIT >#74#return; 455964#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455965#$Ultimate##0 ~n := #in~n; 455985#L25 assume ~n <= 0;#res := 1; 455979#factFINAL assume true; 455963#factEXIT >#76#return; 455953#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 455959#$Ultimate##0 ~n := #in~n; 455956#L25 assume !(~n <= 0); 455865#L26 call #t~ret0 := fact(~n - 1);< 455954#$Ultimate##0 ~n := #in~n; 456012#L25 assume !(~n <= 0); 455867#L26 call #t~ret0 := fact(~n - 1);< 455870#$Ultimate##0 ~n := #in~n; 456016#L25 assume !(~n <= 0); 455866#L26 call #t~ret0 := fact(~n - 1);< 456007#$Ultimate##0 ~n := #in~n; 456017#L25 assume ~n <= 0;#res := 1; 456014#factFINAL assume true; 456006#factEXIT >#66#return; 456004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455996#factFINAL assume true; 455978#factEXIT >#66#return; 455975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455972#factFINAL assume true; 455966#factEXIT >#66#return; 455869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456191#factFINAL assume true; 456190#factEXIT >#78#return; 456189#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 455945#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 455944#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 455941#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 455874#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 455781#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 455782#$Ultimate##0 ~n := #in~n; 455871#L25 assume !(~n <= 0); 455868#L26 call #t~ret0 := fact(~n - 1);< 455870#$Ultimate##0 ~n := #in~n; 456016#L25 assume !(~n <= 0); 455866#L26 call #t~ret0 := fact(~n - 1);< 456007#$Ultimate##0 ~n := #in~n; 456016#L25 assume !(~n <= 0); 455866#L26 call #t~ret0 := fact(~n - 1);< 456007#$Ultimate##0 ~n := #in~n; 456016#L25 assume !(~n <= 0); 455866#L26 call #t~ret0 := fact(~n - 1);< 456007#$Ultimate##0 ~n := #in~n; 456017#L25 assume ~n <= 0;#res := 1; 456014#factFINAL assume true; 456006#factEXIT >#66#return; 456004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455996#factFINAL assume true; 455978#factEXIT >#66#return; 455975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455972#factFINAL assume true; 455966#factEXIT >#66#return; 455962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455952#factFINAL assume true; 455864#factEXIT >#66#return; 455862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455861#factFINAL assume true; 455780#factEXIT >#74#return; 455773#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455776#$Ultimate##0 ~n := #in~n; 456105#L25 assume ~n <= 0;#res := 1; 456098#factFINAL assume true; 456096#factEXIT >#76#return; 456060#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456094#$Ultimate##0 ~n := #in~n; 456092#L25 assume !(~n <= 0); 455896#L26 call #t~ret0 := fact(~n - 1);< 456091#$Ultimate##0 ~n := #in~n; 456186#L25 assume !(~n <= 0); 455889#L26 call #t~ret0 := fact(~n - 1);< 456157#$Ultimate##0 ~n := #in~n; 456187#L25 assume !(~n <= 0); 455892#L26 call #t~ret0 := fact(~n - 1);< 456181#$Ultimate##0 ~n := #in~n; 456185#L25 assume ~n <= 0;#res := 1; 456184#factFINAL assume true; 456180#factEXIT >#66#return; 456178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456177#factFINAL assume true; 456156#factEXIT >#66#return; 456155#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456152#factFINAL assume true; 456095#factEXIT >#66#return; 456088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456104#factFINAL assume true; 456059#factEXIT >#78#return; 455543#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 455541#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 455539#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 455538#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 455536#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 455534#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 455535#$Ultimate##0 ~n := #in~n; 455551#L25 assume !(~n <= 0); 455545#L26 call #t~ret0 := fact(~n - 1);< 455546#$Ultimate##0 ~n := #in~n; 455570#L25 assume !(~n <= 0); 455568#L26 call #t~ret0 := fact(~n - 1);< 455569#$Ultimate##0 ~n := #in~n; 455578#L25 assume !(~n <= 0); 455574#L26 call #t~ret0 := fact(~n - 1);< 455576#$Ultimate##0 ~n := #in~n; 455586#L25 assume !(~n <= 0); 455575#L26 call #t~ret0 := fact(~n - 1);< 455584#$Ultimate##0 ~n := #in~n; 455586#L25 assume !(~n <= 0); 455575#L26 call #t~ret0 := fact(~n - 1);< 455584#$Ultimate##0 ~n := #in~n; 455586#L25 assume !(~n <= 0); 455575#L26 call #t~ret0 := fact(~n - 1);< 455584#$Ultimate##0 ~n := #in~n; 455605#L25 assume ~n <= 0;#res := 1; 455604#factFINAL assume true; 455599#factEXIT >#66#return; 455597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455594#factFINAL assume true; 455591#factEXIT >#66#return; 455589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455588#factFINAL assume true; 455583#factEXIT >#66#return; 455581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455580#factFINAL assume true; 455573#factEXIT >#66#return; 455572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455571#factFINAL assume true; 455567#factEXIT >#66#return; 455566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455563#factFINAL assume true; 455544#factEXIT >#66#return; 455542#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455540#factFINAL assume true; 455533#factEXIT >#74#return; 455482#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455483#$Ultimate##0 ~n := #in~n; 455510#L25 assume ~n <= 0;#res := 1; 455509#factFINAL assume true; 455481#factEXIT >#76#return; 455417#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 455418#$Ultimate##0 ~n := #in~n; 455475#L25 assume !(~n <= 0); 455442#L26 call #t~ret0 := fact(~n - 1);< 455467#$Ultimate##0 ~n := #in~n; 455511#L25 assume !(~n <= 0); 455431#L26 call #t~ret0 := fact(~n - 1);< 455470#$Ultimate##0 ~n := #in~n; 455560#L25 assume !(~n <= 0); 455430#L26 call #t~ret0 := fact(~n - 1);< 455485#$Ultimate##0 ~n := #in~n; 455579#L25 assume !(~n <= 0); 455437#L26 call #t~ret0 := fact(~n - 1);< 455555#$Ultimate##0 ~n := #in~n; 455587#L25 assume !(~n <= 0); 455435#L26 call #t~ret0 := fact(~n - 1);< 455465#$Ultimate##0 ~n := #in~n; 455577#L25 assume !(~n <= 0); 455429#L26 call #t~ret0 := fact(~n - 1);< 455565#$Ultimate##0 ~n := #in~n; 455577#L25 assume !(~n <= 0); 455429#L26 call #t~ret0 := fact(~n - 1);< 455565#$Ultimate##0 ~n := #in~n; 455585#L25 assume ~n <= 0;#res := 1; 455582#factFINAL assume true; 455564#factEXIT >#66#return; 455562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455561#factFINAL assume true; 455559#factEXIT >#66#return; 455558#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455557#factFINAL assume true; 455554#factEXIT >#66#return; 455553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455552#factFINAL assume true; 455484#factEXIT >#66#return; 455477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455472#factFINAL assume true; 455469#factEXIT >#66#return; 455468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455466#factFINAL assume true; 455463#factEXIT >#66#return; 455462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 455457#factFINAL assume true; 455454#factEXIT >#66#return; 455445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456995#factFINAL assume true; 456993#factEXIT >#78#return; 455412#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456990#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 456987#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456985#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 456983#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 456979#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 456973#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456969#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456940#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456962#$Ultimate##0 ~n := #in~n; 456982#L25 assume !(~n <= 0); 456977#L26 call #t~ret0 := fact(~n - 1);< 456978#$Ultimate##0 ~n := #in~n; 456984#L25 assume ~n <= 0;#res := 1; 456981#factFINAL assume true; 456976#factEXIT >#66#return; 456972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456968#factFINAL assume true; 456963#factEXIT >#68#return; 456939#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456955#$Ultimate##0 ~n := #in~n; 456967#L25 assume ~n <= 0;#res := 1; 456961#factFINAL assume true; 456938#factEXIT >#70#return; 456927#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456928#$Ultimate##0 ~n := #in~n; 456971#L25 assume !(~n <= 0); 456965#L26 call #t~ret0 := fact(~n - 1);< 456966#$Ultimate##0 ~n := #in~n; 456975#L25 assume ~n <= 0;#res := 1; 456970#factFINAL assume true; 456964#factEXIT >#66#return; 456960#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456937#factFINAL assume true; 456926#factEXIT >#72#return; 456913#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456911#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 456910#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456908#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456906#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456868#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 455306#$Ultimate##0 ~n := #in~n; 456929#L25 assume !(~n <= 0); 456610#L26 call #t~ret0 := fact(~n - 1);< 456716#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456907#factFINAL assume true; 456841#factEXIT >#68#return; 456869#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456905#$Ultimate##0 ~n := #in~n; 456918#L25 assume !(~n <= 0); 456607#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456907#factFINAL assume true; 456841#factEXIT >#70#return; 456800#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 455194#$Ultimate##0 ~n := #in~n; 457600#L25 assume ~n <= 0;#res := 1; 456829#factFINAL assume true; 456799#factEXIT >#72#return; 456797#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456795#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 456794#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456793#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456759#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456477#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456592#$Ultimate##0 ~n := #in~n; 456750#L25 assume !(~n <= 0); 456614#L26 call #t~ret0 := fact(~n - 1);< 456716#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456718#factFINAL assume true; 456685#factEXIT >#74#return; 456488#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455313#$Ultimate##0 ~n := #in~n; 456923#L25 assume !(~n <= 0); 456611#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456588#factFINAL assume true; 456563#factEXIT >#76#return; 456569#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456912#$Ultimate##0 ~n := #in~n; 456988#L25 assume !(~n <= 0); 456615#L26 call #t~ret0 := fact(~n - 1);< 456618#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456588#factFINAL assume true; 456563#factEXIT >#78#return; 456576#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456909#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 456826#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456798#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456796#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456500#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456562#$Ultimate##0 ~n := #in~n; 457811#L25 assume !(~n <= 0); 456627#L26 call #t~ret0 := fact(~n - 1);< 456701#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456700#factFINAL assume true; 456676#factEXIT >#66#return; 456680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456561#factFINAL assume true; 456389#factEXIT >#74#return; 456496#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455313#$Ultimate##0 ~n := #in~n; 456923#L25 assume !(~n <= 0); 456611#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456588#factFINAL assume true; 456563#factEXIT >#76#return; 456573#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456697#$Ultimate##0 ~n := #in~n; 456792#L25 assume !(~n <= 0); 455271#L26 call #t~ret0 := fact(~n - 1);< 456784#$Ultimate##0 ~n := #in~n; 457607#L25 assume !(~n <= 0); 455266#L26 call #t~ret0 := fact(~n - 1);< 455272#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456718#factFINAL assume true; 456685#factEXIT >#78#return; 456667#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456663#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 456649#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456648#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456604#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456510#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456562#$Ultimate##0 ~n := #in~n; 457811#L25 assume !(~n <= 0); 456627#L26 call #t~ret0 := fact(~n - 1);< 456701#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456700#factFINAL assume true; 456676#factEXIT >#66#return; 456675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456664#factFINAL assume true; 456620#factEXIT >#66#return; 456619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456591#factFINAL assume true; 456589#factEXIT >#74#return; 456511#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455313#$Ultimate##0 ~n := #in~n; 456923#L25 assume !(~n <= 0); 456611#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456588#factFINAL assume true; 456563#factEXIT >#76#return; 456508#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456543#$Ultimate##0 ~n := #in~n; 457602#L25 assume !(~n <= 0); 456629#L26 call #t~ret0 := fact(~n - 1);< 456682#$Ultimate##0 ~n := #in~n; 457586#L25 assume !(~n <= 0); 456679#L26 call #t~ret0 := fact(~n - 1);< 456758#$Ultimate##0 ~n := #in~n; 457583#L25 assume !(~n <= 0); 455270#L26 call #t~ret0 := fact(~n - 1);< 457575#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456700#factFINAL assume true; 456676#factEXIT >#66#return; 456680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456561#factFINAL assume true; 456389#factEXIT >#78#return; 456387#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 456385#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 456382#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 456378#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 456370#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 455398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456286#$Ultimate##0 ~n := #in~n; 456361#L25 assume !(~n <= 0); 456257#L26 call #t~ret0 := fact(~n - 1);< 456292#$Ultimate##0 ~n := #in~n; 456357#L25 assume !(~n <= 0); 456264#L26 call #t~ret0 := fact(~n - 1);< 456300#$Ultimate##0 ~n := #in~n; 456363#L25 assume !(~n <= 0); 456253#L26 call #t~ret0 := fact(~n - 1);< 456320#$Ultimate##0 ~n := #in~n; 456346#L25 assume !(~n <= 0); 456251#L26 call #t~ret0 := fact(~n - 1);< 456339#$Ultimate##0 ~n := #in~n; 456346#L25 assume !(~n <= 0); 456251#L26 call #t~ret0 := fact(~n - 1);< 456339#$Ultimate##0 ~n := #in~n; 456343#L25 assume ~n <= 0;#res := 1; 456345#factFINAL assume true; 456337#factEXIT >#66#return; 456335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456334#factFINAL assume true; 456317#factEXIT >#66#return; 456315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456312#factFINAL assume true; 456305#factEXIT >#66#return; 456304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456301#factFINAL assume true; 456296#factEXIT >#66#return; 456295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456293#factFINAL assume true; 456290#factEXIT >#66#return; 456289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456287#factFINAL assume true; 456283#factEXIT >#74#return; 456279#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456282#$Ultimate##0 ~n := #in~n; 456281#L25 assume !(~n <= 0); 456273#L26 call #t~ret0 := fact(~n - 1);< 456276#$Ultimate##0 ~n := #in~n; 456277#L25 assume ~n <= 0;#res := 1; 456360#factFINAL assume true; 456352#factEXIT >#66#return; 456351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456350#factFINAL assume true; 456347#factEXIT >#76#return; 456328#L30-7 [2023-02-17 09:42:42,305 INFO L750 eck$LassoCheckResult]: Loop: 456328#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456333#$Ultimate##0 ~n := #in~n; 456331#L25 assume !(~n <= 0); 456298#L26 call #t~ret0 := fact(~n - 1);< 456327#$Ultimate##0 ~n := #in~n; 456325#L25 assume !(~n <= 0); 456306#L26 call #t~ret0 := fact(~n - 1);< 456310#$Ultimate##0 ~n := #in~n; 456336#L25 assume !(~n <= 0); 456318#L26 call #t~ret0 := fact(~n - 1);< 456321#$Ultimate##0 ~n := #in~n; 456341#L25 assume !(~n <= 0); 456338#L26 call #t~ret0 := fact(~n - 1);< 456340#$Ultimate##0 ~n := #in~n; 456343#L25 assume ~n <= 0;#res := 1; 456345#factFINAL assume true; 456337#factEXIT >#66#return; 456335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456334#factFINAL assume true; 456317#factEXIT >#66#return; 456315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456312#factFINAL assume true; 456305#factEXIT >#66#return; 456304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456301#factFINAL assume true; 456296#factEXIT >#66#return; 456299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456355#factFINAL assume true; 456354#factEXIT >#78#return; 455406#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 457240#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 457233#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 457230#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 457228#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 457229#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 457223#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 457224#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 455198#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 457128#$Ultimate##0 ~n := #in~n; 457173#L25 assume !(~n <= 0); 457142#L26 call #t~ret0 := fact(~n - 1);< 457146#$Ultimate##0 ~n := #in~n; 456986#L25 assume !(~n <= 0); 457144#L26 call #t~ret0 := fact(~n - 1);< 457182#$Ultimate##0 ~n := #in~n; 457189#L25 assume ~n <= 0;#res := 1; 457185#factFINAL assume true; 457181#factEXIT >#66#return; 457176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 457169#factFINAL assume true; 457141#factEXIT >#66#return; 457135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 457131#factFINAL assume true; 457127#factEXIT >#68#return; 456950#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456955#$Ultimate##0 ~n := #in~n; 456967#L25 assume ~n <= 0;#res := 1; 456961#factFINAL assume true; 456938#factEXIT >#70#return; 456954#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 457090#$Ultimate##0 ~n := #in~n; 457379#L25 assume !(~n <= 0); 457370#L26 call #t~ret0 := fact(~n - 1);< 457374#$Ultimate##0 ~n := #in~n; 456980#L25 assume !(~n <= 0); 457382#L26 call #t~ret0 := fact(~n - 1);< 457385#$Ultimate##0 ~n := #in~n; 457389#L25 assume ~n <= 0;#res := 1; 457388#factFINAL assume true; 457381#factEXIT >#66#return; 457380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 457375#factFINAL assume true; 457365#factEXIT >#66#return; 457364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 457363#factFINAL assume true; 457361#factEXIT >#72#return; 457362#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 457626#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 457625#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 457624#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 457622#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456785#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 455210#$Ultimate##0 ~n := #in~n; 457599#L25 assume !(~n <= 0); 456625#L26 call #t~ret0 := fact(~n - 1);< 456701#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 457348#factFINAL assume true; 457347#factEXIT >#68#return; 456886#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456905#$Ultimate##0 ~n := #in~n; 456918#L25 assume !(~n <= 0); 456607#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456907#factFINAL assume true; 456841#factEXIT >#70#return; 456652#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456992#$Ultimate##0 ~n := #in~n; 456991#L25 assume ~n <= 0;#res := 1; 456829#factFINAL assume true; 456799#factEXIT >#72#return; 456815#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 457618#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 457617#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 457615#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 457613#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456788#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 455210#$Ultimate##0 ~n := #in~n; 457599#L25 assume !(~n <= 0); 456625#L26 call #t~ret0 := fact(~n - 1);< 456701#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 457348#factFINAL assume true; 457347#factEXIT >#68#return; 456853#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456905#$Ultimate##0 ~n := #in~n; 456918#L25 assume !(~n <= 0); 456607#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 457592#L25 assume !(~n <= 0); 456640#L26 call #t~ret0 := fact(~n - 1);< 456757#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 457348#factFINAL assume true; 457347#factEXIT >#70#return; 456651#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456992#$Ultimate##0 ~n := #in~n; 456991#L25 assume ~n <= 0;#res := 1; 456829#factFINAL assume true; 456799#factEXIT >#72#return; 456821#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 457606#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 457589#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 457588#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 457587#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456473#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456562#$Ultimate##0 ~n := #in~n; 457811#L25 assume !(~n <= 0); 456627#L26 call #t~ret0 := fact(~n - 1);< 456701#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456700#factFINAL assume true; 456676#factEXIT >#66#return; 456680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456561#factFINAL assume true; 456389#factEXIT >#74#return; 456485#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455313#$Ultimate##0 ~n := #in~n; 456923#L25 assume !(~n <= 0); 456611#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456588#factFINAL assume true; 456563#factEXIT >#76#return; 456575#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456697#$Ultimate##0 ~n := #in~n; 456792#L25 assume !(~n <= 0); 455271#L26 call #t~ret0 := fact(~n - 1);< 456784#$Ultimate##0 ~n := #in~n; 456673#L25 assume ~n <= 0;#res := 1; 456650#factFINAL assume true; 456605#factEXIT >#66#return; 456590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456588#factFINAL assume true; 456563#factEXIT >#78#return; 456584#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 457342#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 457340#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 457337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 457010#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456397#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456562#$Ultimate##0 ~n := #in~n; 457811#L25 assume !(~n <= 0); 456627#L26 call #t~ret0 := fact(~n - 1);< 456701#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456700#factFINAL assume true; 456676#factEXIT >#66#return; 456675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456664#factFINAL assume true; 456620#factEXIT >#66#return; 456619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456591#factFINAL assume true; 456589#factEXIT >#74#return; 456412#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 455313#$Ultimate##0 ~n := #in~n; 456923#L25 assume !(~n <= 0); 456611#L26 call #t~ret0 := fact(~n - 1);< 456839#$Ultimate##0 ~n := #in~n; 457592#L25 assume !(~n <= 0); 456640#L26 call #t~ret0 := fact(~n - 1);< 456757#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456718#factFINAL assume true; 456685#factEXIT >#76#return; 456565#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456697#$Ultimate##0 ~n := #in~n; 456792#L25 assume !(~n <= 0); 455271#L26 call #t~ret0 := fact(~n - 1);< 456784#$Ultimate##0 ~n := #in~n; 457607#L25 assume !(~n <= 0); 455266#L26 call #t~ret0 := fact(~n - 1);< 455272#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456718#factFINAL assume true; 456685#factEXIT >#78#return; 456693#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 457334#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 457332#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 457330#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 457329#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 456546#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456670#$Ultimate##0 ~n := #in~n; 457612#L25 assume !(~n <= 0); 456705#L26 call #t~ret0 := fact(~n - 1);< 457609#$Ultimate##0 ~n := #in~n; 457605#L25 assume !(~n <= 0); 456641#L26 call #t~ret0 := fact(~n - 1);< 457604#$Ultimate##0 ~n := #in~n; 457603#L25 assume !(~n <= 0); 456624#L26 call #t~ret0 := fact(~n - 1);< 456701#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456700#factFINAL assume true; 456676#factEXIT >#66#return; 456675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456664#factFINAL assume true; 456620#factEXIT >#66#return; 456642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456914#factFINAL assume true; 456830#factEXIT >#66#return; 456827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456760#factFINAL assume true; 456719#factEXIT >#66#return; 456722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456726#factFINAL assume true; 456703#factEXIT >#66#return; 456710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456956#factFINAL assume true; 456930#factEXIT >#66#return; 456925#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456840#factFINAL assume true; 456594#factEXIT >#74#return; 456467#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456592#$Ultimate##0 ~n := #in~n; 456750#L25 assume !(~n <= 0); 456614#L26 call #t~ret0 := fact(~n - 1);< 456716#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456717#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456700#factFINAL assume true; 456676#factEXIT >#66#return; 456675#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456664#factFINAL assume true; 456620#factEXIT >#66#return; 456642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456914#factFINAL assume true; 456830#factEXIT >#66#return; 456827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456760#factFINAL assume true; 456719#factEXIT >#66#return; 456722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456726#factFINAL assume true; 456703#factEXIT >#66#return; 456710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456956#factFINAL assume true; 456930#factEXIT >#66#return; 456925#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456840#factFINAL assume true; 456594#factEXIT >#76#return; 456487#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 456592#$Ultimate##0 ~n := #in~n; 456750#L25 assume !(~n <= 0); 456614#L26 call #t~ret0 := fact(~n - 1);< 456716#$Ultimate##0 ~n := #in~n; 457580#L25 assume !(~n <= 0); 456632#L26 call #t~ret0 := fact(~n - 1);< 457578#$Ultimate##0 ~n := #in~n; 457582#L25 assume ~n <= 0;#res := 1; 457581#factFINAL assume true; 457574#factEXIT >#66#return; 457572#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456769#factFINAL assume true; 456751#factEXIT >#66#return; 456755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456718#factFINAL assume true; 456685#factEXIT >#78#return; 456691#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 457322#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 457321#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 457311#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 457242#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 455369#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 456286#$Ultimate##0 ~n := #in~n; 456361#L25 assume !(~n <= 0); 456257#L26 call #t~ret0 := fact(~n - 1);< 456292#$Ultimate##0 ~n := #in~n; 456357#L25 assume !(~n <= 0); 456264#L26 call #t~ret0 := fact(~n - 1);< 456300#$Ultimate##0 ~n := #in~n; 456363#L25 assume !(~n <= 0); 456253#L26 call #t~ret0 := fact(~n - 1);< 456320#$Ultimate##0 ~n := #in~n; 456346#L25 assume !(~n <= 0); 456251#L26 call #t~ret0 := fact(~n - 1);< 456339#$Ultimate##0 ~n := #in~n; 456346#L25 assume !(~n <= 0); 456251#L26 call #t~ret0 := fact(~n - 1);< 456339#$Ultimate##0 ~n := #in~n; 456343#L25 assume ~n <= 0;#res := 1; 456345#factFINAL assume true; 456337#factEXIT >#66#return; 456335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456334#factFINAL assume true; 456317#factEXIT >#66#return; 456315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456312#factFINAL assume true; 456305#factEXIT >#66#return; 456304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456301#factFINAL assume true; 456296#factEXIT >#66#return; 456295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456293#factFINAL assume true; 456290#factEXIT >#66#return; 456289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456287#factFINAL assume true; 456283#factEXIT >#74#return; 456280#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 456282#$Ultimate##0 ~n := #in~n; 456281#L25 assume !(~n <= 0); 456273#L26 call #t~ret0 := fact(~n - 1);< 456276#$Ultimate##0 ~n := #in~n; 456275#L25 assume !(~n <= 0); 456272#L26 call #t~ret0 := fact(~n - 1);< 456274#$Ultimate##0 ~n := #in~n; 456343#L25 assume ~n <= 0;#res := 1; 456345#factFINAL assume true; 456337#factEXIT >#66#return; 456335#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456334#factFINAL assume true; 456317#factEXIT >#66#return; 456319#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 456349#factFINAL assume true; 456348#factEXIT >#76#return; 456328#L30-7 [2023-02-17 09:42:42,305 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:42,305 INFO L85 PathProgramCache]: Analyzing trace with hash -276971051, now seen corresponding path program 36 times [2023-02-17 09:42:42,305 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:42,305 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [256882794] [2023-02-17 09:42:42,306 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:42,306 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:42,322 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:42,322 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1878622206] [2023-02-17 09:42:42,323 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:42:42,323 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:42,323 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:42,325 INFO L229 MonitoredProcess]: Starting monitored process 221 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:42,325 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (221)] Waiting until timeout for monitored process [2023-02-17 09:42:43,064 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 19 check-sat command(s) [2023-02-17 09:42:43,064 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:43,069 INFO L263 TraceCheckSpWp]: Trace formula consists of 1024 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:42:43,072 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:43,179 INFO L134 CoverageAnalysis]: Checked inductivity of 21771 backedges. 3373 proven. 1229 refuted. 0 times theorem prover too weak. 17169 trivial. 0 not checked. [2023-02-17 09:42:43,179 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:43,458 INFO L134 CoverageAnalysis]: Checked inductivity of 21771 backedges. 2511 proven. 1333 refuted. 0 times theorem prover too weak. 17927 trivial. 0 not checked. [2023-02-17 09:42:43,459 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:43,459 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [256882794] [2023-02-17 09:42:43,459 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:43,459 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1878622206] [2023-02-17 09:42:43,459 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1878622206] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:43,459 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:43,459 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 27] total 31 [2023-02-17 09:42:43,459 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1477702973] [2023-02-17 09:42:43,459 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:43,460 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:43,460 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:43,460 INFO L85 PathProgramCache]: Analyzing trace with hash -1432525307, now seen corresponding path program 30 times [2023-02-17 09:42:43,460 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:43,460 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2044698666] [2023-02-17 09:42:43,460 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:43,460 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:43,475 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:43,475 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1332054289] [2023-02-17 09:42:43,475 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:42:43,475 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:43,475 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:43,484 INFO L229 MonitoredProcess]: Starting monitored process 222 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:43,484 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (222)] Waiting until timeout for monitored process [2023-02-17 09:42:44,147 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 20 check-sat command(s) [2023-02-17 09:42:44,147 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:44,150 INFO L263 TraceCheckSpWp]: Trace formula consists of 600 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:42:44,154 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:44,201 INFO L134 CoverageAnalysis]: Checked inductivity of 13675 backedges. 826 proven. 602 refuted. 0 times theorem prover too weak. 12247 trivial. 0 not checked. [2023-02-17 09:42:44,202 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:44,314 INFO L134 CoverageAnalysis]: Checked inductivity of 13675 backedges. 829 proven. 602 refuted. 0 times theorem prover too weak. 12244 trivial. 0 not checked. [2023-02-17 09:42:44,314 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:44,314 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2044698666] [2023-02-17 09:42:44,314 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:44,314 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1332054289] [2023-02-17 09:42:44,314 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1332054289] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:44,314 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:44,314 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 17 [2023-02-17 09:42:44,314 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [521676618] [2023-02-17 09:42:44,315 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:44,315 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:44,315 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:44,315 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2023-02-17 09:42:44,315 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=254, Unknown=0, NotChecked=0, Total=306 [2023-02-17 09:42:44,315 INFO L87 Difference]: Start difference. First operand 2626 states and 5051 transitions. cyclomatic complexity: 2452 Second operand has 18 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 15 states have internal predecessors, (47), 12 states have call successors, (24), 1 states have call predecessors, (24), 5 states have return successors, (24), 11 states have call predecessors, (24), 12 states have call successors, (24) [2023-02-17 09:42:44,682 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:44,683 INFO L93 Difference]: Finished difference Result 2873 states and 5442 transitions. [2023-02-17 09:42:44,683 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2873 states and 5442 transitions. [2023-02-17 09:42:44,791 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 979 [2023-02-17 09:42:44,808 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2873 states to 2830 states and 5368 transitions. [2023-02-17 09:42:44,808 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 611 [2023-02-17 09:42:44,808 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 611 [2023-02-17 09:42:44,809 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2830 states and 5368 transitions. [2023-02-17 09:42:44,809 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:44,809 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2830 states and 5368 transitions. [2023-02-17 09:42:44,809 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2830 states and 5368 transitions. [2023-02-17 09:42:44,850 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2830 to 2633. [2023-02-17 09:42:44,852 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2633 states, 1576 states have (on average 1.0463197969543148) internal successors, (1649), 1562 states have internal predecessors, (1649), 805 states have call successors, (826), 329 states have call predecessors, (826), 252 states have return successors, (2581), 741 states have call predecessors, (2581), 805 states have call successors, (2581) [2023-02-17 09:42:44,861 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2633 states to 2633 states and 5056 transitions. [2023-02-17 09:42:44,861 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2633 states and 5056 transitions. [2023-02-17 09:42:44,861 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2023-02-17 09:42:44,861 INFO L428 stractBuchiCegarLoop]: Abstraction has 2633 states and 5056 transitions. [2023-02-17 09:42:44,861 INFO L335 stractBuchiCegarLoop]: ======== Iteration 60 ============ [2023-02-17 09:42:44,862 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2633 states and 5056 transitions. [2023-02-17 09:42:44,868 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 822 [2023-02-17 09:42:44,868 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:44,868 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:44,870 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [95, 95, 60, 60, 60, 60, 35, 12, 11, 9, 9, 9, 9, 9, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:44,870 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [73, 73, 52, 52, 52, 52, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:44,871 INFO L748 eck$LassoCheckResult]: Stem: 467239#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 467161#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 467162#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 467185#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 467240#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 468155#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468145#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468135#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468136#$Ultimate##0 ~n := #in~n; 468142#L25 assume ~n <= 0;#res := 1; 468137#factFINAL assume true; 468134#factEXIT >#68#return; 468132#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468133#$Ultimate##0 ~n := #in~n; 468144#L25 assume ~n <= 0;#res := 1; 468141#factFINAL assume true; 468131#factEXIT >#70#return; 468129#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468130#$Ultimate##0 ~n := #in~n; 468143#L25 assume ~n <= 0;#res := 1; 468140#factFINAL assume true; 468128#factEXIT >#72#return; 468127#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468126#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 468124#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468122#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468112#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468119#$Ultimate##0 ~n := #in~n; 468115#L25 assume !(~n <= 0); 468106#L26 call #t~ret0 := fact(~n - 1);< 468108#$Ultimate##0 ~n := #in~n; 468114#L25 assume ~n <= 0;#res := 1; 468111#factFINAL assume true; 468104#factEXIT >#66#return; 468107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468165#factFINAL assume true; 468160#factEXIT >#74#return; 467899#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467900#$Ultimate##0 ~n := #in~n; 468161#L25 assume ~n <= 0;#res := 1; 467904#factFINAL assume true; 467898#factEXIT >#76#return; 467893#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 467894#$Ultimate##0 ~n := #in~n; 468110#L25 assume !(~n <= 0); 468105#L26 call #t~ret0 := fact(~n - 1);< 468108#$Ultimate##0 ~n := #in~n; 468114#L25 assume ~n <= 0;#res := 1; 468111#factFINAL assume true; 468104#factEXIT >#66#return; 468103#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468102#factFINAL assume true; 467892#factEXIT >#78#return; 467891#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 467890#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 467889#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 467887#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 467881#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 467860#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 467861#$Ultimate##0 ~n := #in~n; 467878#L25 assume !(~n <= 0); 467875#L26 call #t~ret0 := fact(~n - 1);< 467877#$Ultimate##0 ~n := #in~n; 467888#L25 assume !(~n <= 0); 467876#L26 call #t~ret0 := fact(~n - 1);< 467886#$Ultimate##0 ~n := #in~n; 468001#L25 assume ~n <= 0;#res := 1; 467999#factFINAL assume true; 467912#factEXIT >#66#return; 467910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467895#factFINAL assume true; 467882#factEXIT >#66#return; 467884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468172#factFINAL assume true; 468170#factEXIT >#74#return; 468167#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468168#$Ultimate##0 ~n := #in~n; 468171#L25 assume ~n <= 0;#res := 1; 468169#factFINAL assume true; 468166#factEXIT >#76#return; 467896#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468164#$Ultimate##0 ~n := #in~n; 468159#L25 assume !(~n <= 0); 467883#L26 call #t~ret0 := fact(~n - 1);< 467897#$Ultimate##0 ~n := #in~n; 467917#L25 assume !(~n <= 0); 467913#L26 call #t~ret0 := fact(~n - 1);< 467914#$Ultimate##0 ~n := #in~n; 468001#L25 assume ~n <= 0;#res := 1; 467999#factFINAL assume true; 467912#factEXIT >#66#return; 467910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467895#factFINAL assume true; 467882#factEXIT >#66#return; 467885#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468179#factFINAL assume true; 468178#factEXIT >#78#return; 468177#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468176#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 468158#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468151#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468148#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 467859#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 467861#$Ultimate##0 ~n := #in~n; 467878#L25 assume !(~n <= 0); 467875#L26 call #t~ret0 := fact(~n - 1);< 467877#$Ultimate##0 ~n := #in~n; 467888#L25 assume !(~n <= 0); 467876#L26 call #t~ret0 := fact(~n - 1);< 467886#$Ultimate##0 ~n := #in~n; 467888#L25 assume !(~n <= 0); 467876#L26 call #t~ret0 := fact(~n - 1);< 467886#$Ultimate##0 ~n := #in~n; 468001#L25 assume ~n <= 0;#res := 1; 467999#factFINAL assume true; 467912#factEXIT >#66#return; 467910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467895#factFINAL assume true; 467882#factEXIT >#66#return; 467880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467879#factFINAL assume true; 467874#factEXIT >#66#return; 467873#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467872#factFINAL assume true; 467858#factEXIT >#74#return; 467854#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467855#$Ultimate##0 ~n := #in~n; 467968#L25 assume ~n <= 0;#res := 1; 467967#factFINAL assume true; 467853#factEXIT >#76#return; 467846#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 467851#$Ultimate##0 ~n := #in~n; 467849#L25 assume !(~n <= 0); 467838#L26 call #t~ret0 := fact(~n - 1);< 467847#$Ultimate##0 ~n := #in~n; 468175#L25 assume !(~n <= 0); 467841#L26 call #t~ret0 := fact(~n - 1);< 467843#$Ultimate##0 ~n := #in~n; 468222#L25 assume !(~n <= 0); 467839#L26 call #t~ret0 := fact(~n - 1);< 468220#$Ultimate##0 ~n := #in~n; 468224#L25 assume ~n <= 0;#res := 1; 468223#factFINAL assume true; 468219#factEXIT >#66#return; 468212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468211#factFINAL assume true; 467952#factEXIT >#66#return; 467951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467950#factFINAL assume true; 467945#factEXIT >#66#return; 467842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467989#factFINAL assume true; 467981#factEXIT >#78#return; 467979#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 467977#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 467976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 467975#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 467974#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 467829#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 467830#$Ultimate##0 ~n := #in~n; 467844#L25 assume !(~n <= 0); 467840#L26 call #t~ret0 := fact(~n - 1);< 467843#$Ultimate##0 ~n := #in~n; 468222#L25 assume !(~n <= 0); 467839#L26 call #t~ret0 := fact(~n - 1);< 468220#$Ultimate##0 ~n := #in~n; 468222#L25 assume !(~n <= 0); 467839#L26 call #t~ret0 := fact(~n - 1);< 468220#$Ultimate##0 ~n := #in~n; 468222#L25 assume !(~n <= 0); 467839#L26 call #t~ret0 := fact(~n - 1);< 468220#$Ultimate##0 ~n := #in~n; 468224#L25 assume ~n <= 0;#res := 1; 468223#factFINAL assume true; 468219#factEXIT >#66#return; 468212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468211#factFINAL assume true; 467952#factEXIT >#66#return; 467951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467950#factFINAL assume true; 467945#factEXIT >#66#return; 467944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467845#factFINAL assume true; 467837#factEXIT >#66#return; 467835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467833#factFINAL assume true; 467828#factEXIT >#74#return; 467704#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467708#$Ultimate##0 ~n := #in~n; 468080#L25 assume ~n <= 0;#res := 1; 468079#factFINAL assume true; 468078#factEXIT >#76#return; 468031#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468074#$Ultimate##0 ~n := #in~n; 468072#L25 assume !(~n <= 0); 467925#L26 call #t~ret0 := fact(~n - 1);< 468071#$Ultimate##0 ~n := #in~n; 468152#L25 assume !(~n <= 0); 467927#L26 call #t~ret0 := fact(~n - 1);< 468068#$Ultimate##0 ~n := #in~n; 468153#L25 assume !(~n <= 0); 467933#L26 call #t~ret0 := fact(~n - 1);< 468150#$Ultimate##0 ~n := #in~n; 468157#L25 assume ~n <= 0;#res := 1; 468156#factFINAL assume true; 468149#factEXIT >#66#return; 468147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468146#factFINAL assume true; 468085#factEXIT >#66#return; 468084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468083#factFINAL assume true; 468075#factEXIT >#66#return; 468067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468086#factFINAL assume true; 468030#factEXIT >#78#return; 467449#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 467446#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 467442#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 467437#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 467433#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 467428#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 467429#$Ultimate##0 ~n := #in~n; 467445#L25 assume !(~n <= 0); 467440#L26 call #t~ret0 := fact(~n - 1);< 467441#$Ultimate##0 ~n := #in~n; 467460#L25 assume !(~n <= 0); 467452#L26 call #t~ret0 := fact(~n - 1);< 467453#$Ultimate##0 ~n := #in~n; 467467#L25 assume !(~n <= 0); 467464#L26 call #t~ret0 := fact(~n - 1);< 467465#$Ultimate##0 ~n := #in~n; 467472#L25 assume !(~n <= 0); 467463#L26 call #t~ret0 := fact(~n - 1);< 467470#$Ultimate##0 ~n := #in~n; 467472#L25 assume !(~n <= 0); 467463#L26 call #t~ret0 := fact(~n - 1);< 467470#$Ultimate##0 ~n := #in~n; 467472#L25 assume !(~n <= 0); 467463#L26 call #t~ret0 := fact(~n - 1);< 467470#$Ultimate##0 ~n := #in~n; 467521#L25 assume ~n <= 0;#res := 1; 467518#factFINAL assume true; 467515#factEXIT >#66#return; 467509#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467477#factFINAL assume true; 467474#factEXIT >#66#return; 467473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467471#factFINAL assume true; 467469#factEXIT >#66#return; 467468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467466#factFINAL assume true; 467462#factEXIT >#66#return; 467461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467459#factFINAL assume true; 467451#factEXIT >#66#return; 467448#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467444#factFINAL assume true; 467439#factEXIT >#66#return; 467436#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467432#factFINAL assume true; 467427#factEXIT >#74#return; 467423#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467424#$Ultimate##0 ~n := #in~n; 467431#L25 assume ~n <= 0;#res := 1; 467426#factFINAL assume true; 467422#factEXIT >#76#return; 467362#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 467372#$Ultimate##0 ~n := #in~n; 467371#L25 assume !(~n <= 0); 467329#L26 call #t~ret0 := fact(~n - 1);< 467363#$Ultimate##0 ~n := #in~n; 467487#L25 assume !(~n <= 0); 467327#L26 call #t~ret0 := fact(~n - 1);< 467366#$Ultimate##0 ~n := #in~n; 467537#L25 assume !(~n <= 0); 467338#L26 call #t~ret0 := fact(~n - 1);< 467376#$Ultimate##0 ~n := #in~n; 467541#L25 assume !(~n <= 0); 467335#L26 call #t~ret0 := fact(~n - 1);< 467532#$Ultimate##0 ~n := #in~n; 467551#L25 assume !(~n <= 0); 467331#L26 call #t~ret0 := fact(~n - 1);< 467360#$Ultimate##0 ~n := #in~n; 467552#L25 assume !(~n <= 0); 467332#L26 call #t~ret0 := fact(~n - 1);< 467550#$Ultimate##0 ~n := #in~n; 467552#L25 assume !(~n <= 0); 467332#L26 call #t~ret0 := fact(~n - 1);< 467550#$Ultimate##0 ~n := #in~n; 467554#L25 assume ~n <= 0;#res := 1; 467553#factFINAL assume true; 467549#factEXIT >#66#return; 467548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467547#factFINAL assume true; 467540#factEXIT >#66#return; 467536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467535#factFINAL assume true; 467531#factEXIT >#66#return; 467485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467481#factFINAL assume true; 467375#factEXIT >#66#return; 467374#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467370#factFINAL assume true; 467365#factEXIT >#66#return; 467364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467361#factFINAL assume true; 467358#factEXIT >#66#return; 467357#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467352#factFINAL assume true; 467349#factEXIT >#66#return; 467341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467508#factFINAL assume true; 467476#factEXIT >#78#return; 467306#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 467305#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 467304#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 467303#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 467302#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 467301#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 467300#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 467299#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 467288#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 467295#$Ultimate##0 ~n := #in~n; 467298#L25 assume !(~n <= 0); 467566#L26 call #t~ret0 := fact(~n - 1);< 467625#$Ultimate##0 ~n := #in~n; 469065#L25 assume ~n <= 0;#res := 1; 469064#factFINAL assume true; 469063#factEXIT >#66#return; 468903#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468886#factFINAL assume true; 468870#factEXIT >#68#return; 467280#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467626#$Ultimate##0 ~n := #in~n; 467297#L25 assume ~n <= 0;#res := 1; 467296#factFINAL assume true; 467275#factEXIT >#70#return; 467291#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468867#$Ultimate##0 ~n := #in~n; 468902#L25 assume !(~n <= 0); 467168#L26 call #t~ret0 := fact(~n - 1);< 468885#$Ultimate##0 ~n := #in~n; 468898#L25 assume ~n <= 0;#res := 1; 468897#factFINAL assume true; 468884#factEXIT >#66#return; 468869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468868#factFINAL assume true; 468866#factEXIT >#72#return; 468864#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468862#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 468861#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468860#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468858#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468829#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 467231#$Ultimate##0 ~n := #in~n; 469084#L25 assume !(~n <= 0); 468584#L26 call #t~ret0 := fact(~n - 1);< 468926#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468859#factFINAL assume true; 468791#factEXIT >#68#return; 468841#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468857#$Ultimate##0 ~n := #in~n; 468865#L25 assume !(~n <= 0); 468582#L26 call #t~ret0 := fact(~n - 1);< 468593#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468859#factFINAL assume true; 468791#factEXIT >#70#return; 468767#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468790#$Ultimate##0 ~n := #in~n; 468979#L25 assume ~n <= 0;#res := 1; 468974#factFINAL assume true; 468761#factEXIT >#72#return; 468760#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468759#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 468758#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468752#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468750#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468443#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468663#$Ultimate##0 ~n := #in~n; 469066#L25 assume !(~n <= 0); 468586#L26 call #t~ret0 := fact(~n - 1);< 468926#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468677#factFINAL assume true; 468608#factEXIT >#74#return; 467221#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467234#$Ultimate##0 ~n := #in~n; 467211#L25 assume !(~n <= 0); 467215#L26 call #t~ret0 := fact(~n - 1);< 468593#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468573#factFINAL assume true; 468541#factEXIT >#76#return; 467212#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 467234#$Ultimate##0 ~n := #in~n; 467211#L25 assume !(~n <= 0); 467215#L26 call #t~ret0 := fact(~n - 1);< 468593#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468573#factFINAL assume true; 468541#factEXIT >#78#return; 468565#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 469019#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 469017#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 469015#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 469010#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468462#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468596#$Ultimate##0 ~n := #in~n; 469249#L25 assume !(~n <= 0); 468641#L26 call #t~ret0 := fact(~n - 1);< 468724#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468679#factFINAL assume true; 468622#factEXIT >#66#return; 468607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468595#factFINAL assume true; 468395#factEXIT >#74#return; 467222#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467234#$Ultimate##0 ~n := #in~n; 467211#L25 assume !(~n <= 0); 467215#L26 call #t~ret0 := fact(~n - 1);< 468593#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468573#factFINAL assume true; 468541#factEXIT >#76#return; 468546#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468621#$Ultimate##0 ~n := #in~n; 468968#L25 assume !(~n <= 0); 468580#L26 call #t~ret0 := fact(~n - 1);< 468713#$Ultimate##0 ~n := #in~n; 468971#L25 assume !(~n <= 0); 468754#L26 call #t~ret0 := fact(~n - 1);< 468756#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468677#factFINAL assume true; 468608#factEXIT >#78#return; 468606#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468605#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 468604#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468602#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468601#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468475#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468596#$Ultimate##0 ~n := #in~n; 469249#L25 assume !(~n <= 0); 468641#L26 call #t~ret0 := fact(~n - 1);< 468724#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468679#factFINAL assume true; 468622#factEXIT >#66#return; 468644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468956#factFINAL assume true; 468689#factEXIT >#66#return; 468688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468662#factFINAL assume true; 468599#factEXIT >#74#return; 467223#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467234#$Ultimate##0 ~n := #in~n; 467211#L25 assume !(~n <= 0); 467215#L26 call #t~ret0 := fact(~n - 1);< 468593#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468573#factFINAL assume true; 468541#factEXIT >#76#return; 468471#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468539#$Ultimate##0 ~n := #in~n; 469247#L25 assume !(~n <= 0); 468625#L26 call #t~ret0 := fact(~n - 1);< 468647#$Ultimate##0 ~n := #in~n; 469531#L25 assume !(~n <= 0); 468624#L26 call #t~ret0 := fact(~n - 1);< 468710#$Ultimate##0 ~n := #in~n; 468969#L25 assume !(~n <= 0); 468702#L26 call #t~ret0 := fact(~n - 1);< 468755#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468679#factFINAL assume true; 468622#factEXIT >#66#return; 468607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468595#factFINAL assume true; 468395#factEXIT >#78#return; 468393#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 468392#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 468391#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 468390#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468388#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468291#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468340#$Ultimate##0 ~n := #in~n; 468988#L25 assume !(~n <= 0); 468311#L26 call #t~ret0 := fact(~n - 1);< 468982#$Ultimate##0 ~n := #in~n; 468981#L25 assume !(~n <= 0); 468316#L26 call #t~ret0 := fact(~n - 1);< 468975#$Ultimate##0 ~n := #in~n; 468972#L25 assume !(~n <= 0); 468315#L26 call #t~ret0 := fact(~n - 1);< 468669#$Ultimate##0 ~n := #in~n; 468745#L25 assume !(~n <= 0); 468318#L26 call #t~ret0 := fact(~n - 1);< 468743#$Ultimate##0 ~n := #in~n; 468745#L25 assume !(~n <= 0); 468318#L26 call #t~ret0 := fact(~n - 1);< 468743#$Ultimate##0 ~n := #in~n; 468747#L25 assume ~n <= 0;#res := 1; 468746#factFINAL assume true; 468741#factEXIT >#66#return; 468739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468737#factFINAL assume true; 468666#factEXIT >#66#return; 468598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468576#factFINAL assume true; 468382#factEXIT >#66#return; 468381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468355#factFINAL assume true; 468350#factEXIT >#66#return; 468349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468347#factFINAL assume true; 468344#factEXIT >#66#return; 468343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468341#factFINAL assume true; 468337#factEXIT >#74#return; 467204#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467235#$Ultimate##0 ~n := #in~n; 467203#L25 assume !(~n <= 0); 467205#L26 call #t~ret0 := fact(~n - 1);< 467232#$Ultimate##0 ~n := #in~n; 467233#L25 assume ~n <= 0;#res := 1; 468711#factFINAL assume true; 468665#factEXIT >#66#return; 468597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468574#factFINAL assume true; 468379#factEXIT >#76#return; 467660#L30-7 [2023-02-17 09:42:44,871 INFO L750 eck$LassoCheckResult]: Loop: 467660#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469087#$Ultimate##0 ~n := #in~n; 469086#L25 assume !(~n <= 0); 468352#L26 call #t~ret0 := fact(~n - 1);< 469079#$Ultimate##0 ~n := #in~n; 469078#L25 assume !(~n <= 0); 468383#L26 call #t~ret0 := fact(~n - 1);< 468387#$Ultimate##0 ~n := #in~n; 468965#L25 assume !(~n <= 0); 468667#L26 call #t~ret0 := fact(~n - 1);< 468670#$Ultimate##0 ~n := #in~n; 468978#L25 assume !(~n <= 0); 468742#L26 call #t~ret0 := fact(~n - 1);< 468744#$Ultimate##0 ~n := #in~n; 468747#L25 assume ~n <= 0;#res := 1; 468746#factFINAL assume true; 468741#factEXIT >#66#return; 468739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468737#factFINAL assume true; 468666#factEXIT >#66#return; 468598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468576#factFINAL assume true; 468382#factEXIT >#66#return; 468381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468355#factFINAL assume true; 468350#factEXIT >#66#return; 468353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468372#factFINAL assume true; 467642#factEXIT >#78#return; 467163#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 467164#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 467186#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 467238#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 469740#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 467631#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 467627#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 467628#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 467137#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 467612#$Ultimate##0 ~n := #in~n; 467610#L25 assume !(~n <= 0); 467568#L26 call #t~ret0 := fact(~n - 1);< 467609#$Ultimate##0 ~n := #in~n; 467615#L25 assume !(~n <= 0); 467563#L26 call #t~ret0 := fact(~n - 1);< 467621#$Ultimate##0 ~n := #in~n; 467623#L25 assume ~n <= 0;#res := 1; 467622#factFINAL assume true; 467620#factEXIT >#66#return; 467611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 467608#factFINAL assume true; 467605#factEXIT >#66#return; 467606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469279#factFINAL assume true; 469276#factEXIT >#68#return; 467282#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467626#$Ultimate##0 ~n := #in~n; 467297#L25 assume ~n <= 0;#res := 1; 467296#factFINAL assume true; 467275#factEXIT >#70#return; 467123#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469275#$Ultimate##0 ~n := #in~n; 469286#L25 assume !(~n <= 0); 467170#L26 call #t~ret0 := fact(~n - 1);< 469068#$Ultimate##0 ~n := #in~n; 468899#L25 assume !(~n <= 0); 467167#L26 call #t~ret0 := fact(~n - 1);< 467172#$Ultimate##0 ~n := #in~n; 469387#L25 assume ~n <= 0;#res := 1; 469390#factFINAL assume true; 469376#factEXIT >#66#return; 469375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469287#factFINAL assume true; 469280#factEXIT >#66#return; 469278#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469277#factFINAL assume true; 469272#factEXIT >#72#return; 469273#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 469585#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 469584#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 469583#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 469582#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468721#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468740#$Ultimate##0 ~n := #in~n; 468738#L25 assume !(~n <= 0); 468637#L26 call #t~ret0 := fact(~n - 1);< 468724#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469070#factFINAL assume true; 469052#factEXIT >#68#return; 468803#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469057#$Ultimate##0 ~n := #in~n; 468977#L25 assume !(~n <= 0); 468585#L26 call #t~ret0 := fact(~n - 1);< 468863#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468859#factFINAL assume true; 468791#factEXIT >#70#return; 468657#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469136#$Ultimate##0 ~n := #in~n; 469094#L25 assume !(~n <= 0); 468587#L26 call #t~ret0 := fact(~n - 1);< 468593#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469326#factFINAL assume true; 469321#factEXIT >#72#return; 469323#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 469581#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 469580#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 469579#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 469578#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468722#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468740#$Ultimate##0 ~n := #in~n; 468738#L25 assume !(~n <= 0); 468637#L26 call #t~ret0 := fact(~n - 1);< 468724#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469070#factFINAL assume true; 469052#factEXIT >#68#return; 468835#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 469057#$Ultimate##0 ~n := #in~n; 468977#L25 assume !(~n <= 0); 468585#L26 call #t~ret0 := fact(~n - 1);< 468863#$Ultimate##0 ~n := #in~n; 469539#L25 assume !(~n <= 0); 468635#L26 call #t~ret0 := fact(~n - 1);< 468961#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469070#factFINAL assume true; 469052#factEXIT >#70#return; 468655#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 469136#$Ultimate##0 ~n := #in~n; 469094#L25 assume ~n <= 0;#res := 1; 468974#factFINAL assume true; 468761#factEXIT >#72#return; 468775#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 469417#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 469415#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 469412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 469411#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468446#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468596#$Ultimate##0 ~n := #in~n; 469249#L25 assume !(~n <= 0); 468641#L26 call #t~ret0 := fact(~n - 1);< 468724#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468679#factFINAL assume true; 468622#factEXIT >#66#return; 468607#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468595#factFINAL assume true; 468395#factEXIT >#74#return; 468463#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467237#$Ultimate##0 ~n := #in~n; 469115#L25 assume !(~n <= 0); 468583#L26 call #t~ret0 := fact(~n - 1);< 468863#$Ultimate##0 ~n := #in~n; 469539#L25 assume !(~n <= 0); 468635#L26 call #t~ret0 := fact(~n - 1);< 468961#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468677#factFINAL assume true; 468608#factEXIT >#76#return; 468548#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468621#$Ultimate##0 ~n := #in~n; 468968#L25 assume !(~n <= 0); 468580#L26 call #t~ret0 := fact(~n - 1);< 468713#$Ultimate##0 ~n := #in~n; 468661#L25 assume ~n <= 0;#res := 1; 468648#factFINAL assume true; 468578#factEXIT >#66#return; 468575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468573#factFINAL assume true; 468541#factEXIT >#78#return; 468559#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 469722#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 469720#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 469718#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 469717#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468503#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468596#$Ultimate##0 ~n := #in~n; 469249#L25 assume !(~n <= 0); 468641#L26 call #t~ret0 := fact(~n - 1);< 468724#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468679#factFINAL assume true; 468622#factEXIT >#66#return; 468644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468956#factFINAL assume true; 468689#factEXIT >#66#return; 468688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468662#factFINAL assume true; 468599#factEXIT >#74#return; 468521#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 467237#$Ultimate##0 ~n := #in~n; 469115#L25 assume !(~n <= 0); 468583#L26 call #t~ret0 := fact(~n - 1);< 468863#$Ultimate##0 ~n := #in~n; 469539#L25 assume !(~n <= 0); 468635#L26 call #t~ret0 := fact(~n - 1);< 468961#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468677#factFINAL assume true; 468608#factEXIT >#76#return; 468543#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468621#$Ultimate##0 ~n := #in~n; 468968#L25 assume !(~n <= 0); 468580#L26 call #t~ret0 := fact(~n - 1);< 468713#$Ultimate##0 ~n := #in~n; 468971#L25 assume !(~n <= 0); 468754#L26 call #t~ret0 := fact(~n - 1);< 468756#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468677#factFINAL assume true; 468608#factEXIT >#78#return; 468616#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 469708#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 469703#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 469704#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 467189#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 467190#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468896#$Ultimate##0 ~n := #in~n; 469543#L25 assume !(~n <= 0); 468919#L26 call #t~ret0 := fact(~n - 1);< 468935#$Ultimate##0 ~n := #in~n; 469135#L25 assume !(~n <= 0); 468692#L26 call #t~ret0 := fact(~n - 1);< 469093#$Ultimate##0 ~n := #in~n; 468983#L25 assume !(~n <= 0); 468639#L26 call #t~ret0 := fact(~n - 1);< 468724#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468679#factFINAL assume true; 468622#factEXIT >#66#return; 468644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468956#factFINAL assume true; 468689#factEXIT >#66#return; 468697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469113#factFINAL assume true; 469099#factEXIT >#66#return; 469098#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469071#factFINAL assume true; 468928#factEXIT >#66#return; 468931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469114#factFINAL assume true; 469080#factEXIT >#66#return; 468924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468937#factFINAL assume true; 468909#factEXIT >#66#return; 468906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468901#factFINAL assume true; 468887#factEXIT >#74#return; 468455#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468663#$Ultimate##0 ~n := #in~n; 469066#L25 assume !(~n <= 0); 468586#L26 call #t~ret0 := fact(~n - 1);< 468926#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468679#factFINAL assume true; 468622#factEXIT >#66#return; 468644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468956#factFINAL assume true; 468689#factEXIT >#66#return; 468697#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469113#factFINAL assume true; 469099#factEXIT >#66#return; 469102#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469468#factFINAL assume true; 468871#factEXIT >#76#return; 468481#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 468663#$Ultimate##0 ~n := #in~n; 469066#L25 assume !(~n <= 0); 468586#L26 call #t~ret0 := fact(~n - 1);< 468926#$Ultimate##0 ~n := #in~n; 469085#L25 assume !(~n <= 0); 468630#L26 call #t~ret0 := fact(~n - 1);< 468940#$Ultimate##0 ~n := #in~n; 468967#L25 assume ~n <= 0;#res := 1; 468966#factFINAL assume true; 468753#factEXIT >#66#return; 468751#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468712#factFINAL assume true; 468701#factEXIT >#66#return; 468706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468677#factFINAL assume true; 468608#factEXIT >#78#return; 468612#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 469737#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 469736#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 469735#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 468970#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 468301#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 468340#$Ultimate##0 ~n := #in~n; 468988#L25 assume !(~n <= 0); 468311#L26 call #t~ret0 := fact(~n - 1);< 468982#$Ultimate##0 ~n := #in~n; 468981#L25 assume !(~n <= 0); 468316#L26 call #t~ret0 := fact(~n - 1);< 468975#$Ultimate##0 ~n := #in~n; 468972#L25 assume !(~n <= 0); 468315#L26 call #t~ret0 := fact(~n - 1);< 468669#$Ultimate##0 ~n := #in~n; 468745#L25 assume !(~n <= 0); 468318#L26 call #t~ret0 := fact(~n - 1);< 468743#$Ultimate##0 ~n := #in~n; 468745#L25 assume !(~n <= 0); 468318#L26 call #t~ret0 := fact(~n - 1);< 468743#$Ultimate##0 ~n := #in~n; 468747#L25 assume ~n <= 0;#res := 1; 468746#factFINAL assume true; 468741#factEXIT >#66#return; 468739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468737#factFINAL assume true; 468666#factEXIT >#66#return; 468598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468576#factFINAL assume true; 468382#factEXIT >#66#return; 468381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468355#factFINAL assume true; 468350#factEXIT >#66#return; 468349#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468347#factFINAL assume true; 468344#factEXIT >#66#return; 468343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468341#factFINAL assume true; 468337#factEXIT >#74#return; 467690#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 468336#$Ultimate##0 ~n := #in~n; 468335#L25 assume !(~n <= 0); 468331#L26 call #t~ret0 := fact(~n - 1);< 468334#$Ultimate##0 ~n := #in~n; 468333#L25 assume !(~n <= 0); 468330#L26 call #t~ret0 := fact(~n - 1);< 468332#$Ultimate##0 ~n := #in~n; 468747#L25 assume ~n <= 0;#res := 1; 468746#factFINAL assume true; 468741#factEXIT >#66#return; 468739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 468737#factFINAL assume true; 468666#factEXIT >#66#return; 468668#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 469062#factFINAL assume true; 468370#factEXIT >#76#return; 467660#L30-7 [2023-02-17 09:42:44,872 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:44,872 INFO L85 PathProgramCache]: Analyzing trace with hash -276971051, now seen corresponding path program 37 times [2023-02-17 09:42:44,872 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:44,872 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1636274162] [2023-02-17 09:42:44,872 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:44,872 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:44,891 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:44,891 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [913307594] [2023-02-17 09:42:44,891 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:44,892 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:44,892 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:44,895 INFO L229 MonitoredProcess]: Starting monitored process 223 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:44,895 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (223)] Waiting until timeout for monitored process [2023-02-17 09:42:45,618 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:45,623 INFO L263 TraceCheckSpWp]: Trace formula consists of 1336 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:42:45,627 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:45,688 INFO L134 CoverageAnalysis]: Checked inductivity of 21771 backedges. 10551 proven. 24 refuted. 0 times theorem prover too weak. 11196 trivial. 0 not checked. [2023-02-17 09:42:45,688 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:45,838 INFO L134 CoverageAnalysis]: Checked inductivity of 21771 backedges. 697 proven. 1011 refuted. 0 times theorem prover too weak. 20063 trivial. 0 not checked. [2023-02-17 09:42:45,838 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:45,838 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1636274162] [2023-02-17 09:42:45,838 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:45,839 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [913307594] [2023-02-17 09:42:45,839 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [913307594] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:45,839 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:45,839 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 24 [2023-02-17 09:42:45,839 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1162275912] [2023-02-17 09:42:45,839 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:45,840 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:45,840 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:45,840 INFO L85 PathProgramCache]: Analyzing trace with hash -1939731651, now seen corresponding path program 31 times [2023-02-17 09:42:45,840 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:45,840 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2081912129] [2023-02-17 09:42:45,840 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:45,840 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:45,856 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:45,857 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [786639361] [2023-02-17 09:42:45,857 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:42:45,857 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:45,857 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:45,860 INFO L229 MonitoredProcess]: Starting monitored process 224 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:45,861 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (224)] Waiting until timeout for monitored process [2023-02-17 09:42:46,543 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:42:46,547 INFO L263 TraceCheckSpWp]: Trace formula consists of 989 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:42:46,550 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:46,617 INFO L134 CoverageAnalysis]: Checked inductivity of 13279 backedges. 6357 proven. 97 refuted. 0 times theorem prover too weak. 6825 trivial. 0 not checked. [2023-02-17 09:42:46,617 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:46,787 INFO L134 CoverageAnalysis]: Checked inductivity of 13279 backedges. 1333 proven. 614 refuted. 0 times theorem prover too weak. 11332 trivial. 0 not checked. [2023-02-17 09:42:46,787 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:46,787 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2081912129] [2023-02-17 09:42:46,787 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:46,787 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [786639361] [2023-02-17 09:42:46,788 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [786639361] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:46,788 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:46,788 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 21] total 22 [2023-02-17 09:42:46,788 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [347339911] [2023-02-17 09:42:46,788 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:46,789 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:46,789 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:46,789 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2023-02-17 09:42:46,790 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=364, Unknown=0, NotChecked=0, Total=462 [2023-02-17 09:42:46,790 INFO L87 Difference]: Start difference. First operand 2633 states and 5056 transitions. cyclomatic complexity: 2450 Second operand has 22 states, 21 states have (on average 3.5714285714285716) internal successors, (75), 22 states have internal predecessors, (75), 15 states have call successors, (32), 2 states have call predecessors, (32), 8 states have return successors, (36), 13 states have call predecessors, (36), 15 states have call successors, (36) [2023-02-17 09:42:47,552 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:47,553 INFO L93 Difference]: Finished difference Result 3129 states and 6390 transitions. [2023-02-17 09:42:47,553 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3129 states and 6390 transitions. [2023-02-17 09:42:47,578 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 1194 [2023-02-17 09:42:47,612 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3129 states to 3064 states and 6311 transitions. [2023-02-17 09:42:47,612 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 556 [2023-02-17 09:42:47,613 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 556 [2023-02-17 09:42:47,613 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3064 states and 6311 transitions. [2023-02-17 09:42:47,613 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:47,614 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3064 states and 6311 transitions. [2023-02-17 09:42:47,615 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3064 states and 6311 transitions. [2023-02-17 09:42:47,670 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3064 to 2699. [2023-02-17 09:42:47,673 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2699 states, 1610 states have (on average 1.0472049689440994) internal successors, (1686), 1596 states have internal predecessors, (1686), 843 states have call successors, (861), 323 states have call predecessors, (861), 246 states have return successors, (2758), 779 states have call predecessors, (2758), 843 states have call successors, (2758) [2023-02-17 09:42:47,686 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2699 states to 2699 states and 5305 transitions. [2023-02-17 09:42:47,686 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2699 states and 5305 transitions. [2023-02-17 09:42:47,687 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2023-02-17 09:42:47,688 INFO L428 stractBuchiCegarLoop]: Abstraction has 2699 states and 5305 transitions. [2023-02-17 09:42:47,688 INFO L335 stractBuchiCegarLoop]: ======== Iteration 61 ============ [2023-02-17 09:42:47,688 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2699 states and 5305 transitions. [2023-02-17 09:42:47,698 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 921 [2023-02-17 09:42:47,698 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:47,699 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:47,701 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [92, 92, 57, 57, 57, 57, 35, 12, 11, 9, 9, 9, 9, 9, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:47,701 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [66, 66, 45, 45, 45, 45, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:47,702 INFO L748 eck$LassoCheckResult]: Stem: 479504#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 479437#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 479438#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 479460#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 479452#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 479453#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 480340#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 480337#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480338#$Ultimate##0 ~n := #in~n; 480347#L25 assume ~n <= 0;#res := 1; 480344#factFINAL assume true; 480336#factEXIT >#68#return; 480331#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480332#$Ultimate##0 ~n := #in~n; 480335#L25 assume ~n <= 0;#res := 1; 480334#factFINAL assume true; 480330#factEXIT >#70#return; 480327#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480328#$Ultimate##0 ~n := #in~n; 480353#L25 assume ~n <= 0;#res := 1; 480352#factFINAL assume true; 480326#factEXIT >#72#return; 480324#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 480320#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 480317#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 480312#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 480311#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 480292#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480293#$Ultimate##0 ~n := #in~n; 480303#L25 assume !(~n <= 0); 480300#L26 call #t~ret0 := fact(~n - 1);< 480302#$Ultimate##0 ~n := #in~n; 480307#L25 assume ~n <= 0;#res := 1; 480305#factFINAL assume true; 480299#factEXIT >#66#return; 480297#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480295#factFINAL assume true; 480291#factEXIT >#74#return; 480286#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480287#$Ultimate##0 ~n := #in~n; 480310#L25 assume ~n <= 0;#res := 1; 480309#factFINAL assume true; 480285#factEXIT >#76#return; 480282#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480283#$Ultimate##0 ~n := #in~n; 480304#L25 assume !(~n <= 0); 480301#L26 call #t~ret0 := fact(~n - 1);< 480302#$Ultimate##0 ~n := #in~n; 480307#L25 assume ~n <= 0;#res := 1; 480305#factFINAL assume true; 480299#factEXIT >#66#return; 480298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480296#factFINAL assume true; 480281#factEXIT >#78#return; 480276#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 480269#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 480265#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 480259#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 480255#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 480229#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480231#$Ultimate##0 ~n := #in~n; 480248#L25 assume !(~n <= 0); 480242#L26 call #t~ret0 := fact(~n - 1);< 480243#$Ultimate##0 ~n := #in~n; 480279#L25 assume !(~n <= 0); 480241#L26 call #t~ret0 := fact(~n - 1);< 480278#$Ultimate##0 ~n := #in~n; 480308#L25 assume ~n <= 0;#res := 1; 480306#factFINAL assume true; 480288#factEXIT >#66#return; 480284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480277#factFINAL assume true; 480270#factEXIT >#66#return; 480273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480268#factFINAL assume true; 480264#factEXIT >#74#return; 480262#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480263#$Ultimate##0 ~n := #in~n; 480275#L25 assume ~n <= 0;#res := 1; 480267#factFINAL assume true; 480261#factEXIT >#76#return; 480257#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480258#$Ultimate##0 ~n := #in~n; 480280#L25 assume !(~n <= 0); 480271#L26 call #t~ret0 := fact(~n - 1);< 480274#$Ultimate##0 ~n := #in~n; 480294#L25 assume !(~n <= 0); 480289#L26 call #t~ret0 := fact(~n - 1);< 480290#$Ultimate##0 ~n := #in~n; 480308#L25 assume ~n <= 0;#res := 1; 480306#factFINAL assume true; 480288#factEXIT >#66#return; 480284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480277#factFINAL assume true; 480270#factEXIT >#66#return; 480266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480260#factFINAL assume true; 480256#factEXIT >#78#return; 480253#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 480249#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 480244#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 480238#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 480235#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 480230#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480231#$Ultimate##0 ~n := #in~n; 480248#L25 assume !(~n <= 0); 480242#L26 call #t~ret0 := fact(~n - 1);< 480243#$Ultimate##0 ~n := #in~n; 480279#L25 assume !(~n <= 0); 480241#L26 call #t~ret0 := fact(~n - 1);< 480278#$Ultimate##0 ~n := #in~n; 480279#L25 assume !(~n <= 0); 480241#L26 call #t~ret0 := fact(~n - 1);< 480278#$Ultimate##0 ~n := #in~n; 480308#L25 assume ~n <= 0;#res := 1; 480306#factFINAL assume true; 480288#factEXIT >#66#return; 480284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480277#factFINAL assume true; 480270#factEXIT >#66#return; 480272#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480247#factFINAL assume true; 480240#factEXIT >#66#return; 480237#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480234#factFINAL assume true; 480228#factEXIT >#74#return; 480223#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480224#$Ultimate##0 ~n := #in~n; 480233#L25 assume ~n <= 0;#res := 1; 480227#factFINAL assume true; 480222#factEXIT >#76#return; 480210#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480219#$Ultimate##0 ~n := #in~n; 480215#L25 assume !(~n <= 0); 480201#L26 call #t~ret0 := fact(~n - 1);< 480211#$Ultimate##0 ~n := #in~n; 480251#L25 assume !(~n <= 0); 480204#L26 call #t~ret0 := fact(~n - 1);< 480206#$Ultimate##0 ~n := #in~n; 480252#L25 assume !(~n <= 0); 480203#L26 call #t~ret0 := fact(~n - 1);< 480246#$Ultimate##0 ~n := #in~n; 480254#L25 assume ~n <= 0;#res := 1; 480250#factFINAL assume true; 480245#factEXIT >#66#return; 480239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480236#factFINAL assume true; 480232#factEXIT >#66#return; 480225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480221#factFINAL assume true; 480218#factEXIT >#66#return; 480205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480314#factFINAL assume true; 480220#factEXIT >#78#return; 480217#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 480213#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 480208#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 480199#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 480195#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 480189#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480190#$Ultimate##0 ~n := #in~n; 480212#L25 assume !(~n <= 0); 480202#L26 call #t~ret0 := fact(~n - 1);< 480206#$Ultimate##0 ~n := #in~n; 480252#L25 assume !(~n <= 0); 480203#L26 call #t~ret0 := fact(~n - 1);< 480246#$Ultimate##0 ~n := #in~n; 480252#L25 assume !(~n <= 0); 480203#L26 call #t~ret0 := fact(~n - 1);< 480246#$Ultimate##0 ~n := #in~n; 480252#L25 assume !(~n <= 0); 480203#L26 call #t~ret0 := fact(~n - 1);< 480246#$Ultimate##0 ~n := #in~n; 480254#L25 assume ~n <= 0;#res := 1; 480250#factFINAL assume true; 480245#factEXIT >#66#return; 480239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480236#factFINAL assume true; 480232#factEXIT >#66#return; 480225#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480221#factFINAL assume true; 480218#factEXIT >#66#return; 480214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480209#factFINAL assume true; 480200#factEXIT >#66#return; 480196#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480194#factFINAL assume true; 480188#factEXIT >#74#return; 480170#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480171#$Ultimate##0 ~n := #in~n; 480181#L25 assume ~n <= 0;#res := 1; 480179#factFINAL assume true; 480169#factEXIT >#76#return; 480161#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480165#$Ultimate##0 ~n := #in~n; 480164#L25 assume !(~n <= 0); 480119#L26 call #t~ret0 := fact(~n - 1);< 480162#$Ultimate##0 ~n := #in~n; 480192#L25 assume !(~n <= 0); 480111#L26 call #t~ret0 := fact(~n - 1);< 480178#$Ultimate##0 ~n := #in~n; 480193#L25 assume !(~n <= 0); 480113#L26 call #t~ret0 := fact(~n - 1);< 480187#$Ultimate##0 ~n := #in~n; 480226#L25 assume ~n <= 0;#res := 1; 480191#factFINAL assume true; 480186#factEXIT >#66#return; 480185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480184#factFINAL assume true; 480183#factEXIT >#66#return; 480182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480180#factFINAL assume true; 480177#factEXIT >#66#return; 480130#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480465#factFINAL assume true; 480437#factEXIT >#78#return; 480436#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 480434#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 480433#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 480426#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 480423#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479783#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479784#$Ultimate##0 ~n := #in~n; 479791#L25 assume !(~n <= 0); 479788#L26 call #t~ret0 := fact(~n - 1);< 479789#$Ultimate##0 ~n := #in~n; 479797#L25 assume !(~n <= 0); 479794#L26 call #t~ret0 := fact(~n - 1);< 479795#$Ultimate##0 ~n := #in~n; 479804#L25 assume !(~n <= 0); 479800#L26 call #t~ret0 := fact(~n - 1);< 479802#$Ultimate##0 ~n := #in~n; 479809#L25 assume !(~n <= 0); 479801#L26 call #t~ret0 := fact(~n - 1);< 479807#$Ultimate##0 ~n := #in~n; 479809#L25 assume !(~n <= 0); 479801#L26 call #t~ret0 := fact(~n - 1);< 479807#$Ultimate##0 ~n := #in~n; 479813#L25 assume ~n <= 0;#res := 1; 479812#factFINAL assume true; 479811#factEXIT >#66#return; 479810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479808#factFINAL assume true; 479806#factEXIT >#66#return; 479805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479803#factFINAL assume true; 479799#factEXIT >#66#return; 479798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479796#factFINAL assume true; 479793#factEXIT >#66#return; 479792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479790#factFINAL assume true; 479787#factEXIT >#66#return; 479786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479785#factFINAL assume true; 479782#factEXIT >#74#return; 479777#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479778#$Ultimate##0 ~n := #in~n; 479780#L25 assume ~n <= 0;#res := 1; 479779#factFINAL assume true; 479776#factEXIT >#76#return; 479635#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 479637#$Ultimate##0 ~n := #in~n; 479636#L25 assume !(~n <= 0); 479594#L26 call #t~ret0 := fact(~n - 1);< 479632#$Ultimate##0 ~n := #in~n; 479742#L25 assume !(~n <= 0); 479593#L26 call #t~ret0 := fact(~n - 1);< 479644#$Ultimate##0 ~n := #in~n; 479744#L25 assume !(~n <= 0); 479598#L26 call #t~ret0 := fact(~n - 1);< 479734#$Ultimate##0 ~n := #in~n; 479762#L25 assume !(~n <= 0); 479596#L26 call #t~ret0 := fact(~n - 1);< 479738#$Ultimate##0 ~n := #in~n; 479748#L25 assume !(~n <= 0); 479600#L26 call #t~ret0 := fact(~n - 1);< 479747#$Ultimate##0 ~n := #in~n; 479763#L25 assume ~n <= 0;#res := 1; 479749#factFINAL assume true; 479746#factEXIT >#66#return; 479745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479743#factFINAL assume true; 479737#factEXIT >#66#return; 479736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479735#factFINAL assume true; 479733#factEXIT >#66#return; 479732#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479728#factFINAL assume true; 479643#factEXIT >#66#return; 479638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479634#factFINAL assume true; 479631#factEXIT >#66#return; 479608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479781#factFINAL assume true; 479769#factEXIT >#78#return; 479575#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 479574#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 479573#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 479572#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 479571#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 479570#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 479569#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 479568#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479551#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479564#$Ultimate##0 ~n := #in~n; 479886#L25 assume !(~n <= 0); 479833#L26 call #t~ret0 := fact(~n - 1);< 479884#$Ultimate##0 ~n := #in~n; 481339#L25 assume ~n <= 0;#res := 1; 481338#factFINAL assume true; 481335#factEXIT >#66#return; 481333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481217#factFINAL assume true; 481216#factEXIT >#68#return; 479548#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479567#$Ultimate##0 ~n := #in~n; 479566#L25 assume ~n <= 0;#res := 1; 479565#factFINAL assume true; 479546#factEXIT >#70#return; 479561#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 481204#$Ultimate##0 ~n := #in~n; 481349#L25 assume !(~n <= 0); 479446#L26 call #t~ret0 := fact(~n - 1);< 481215#$Ultimate##0 ~n := #in~n; 481220#L25 assume ~n <= 0;#res := 1; 481219#factFINAL assume true; 481214#factEXIT >#66#return; 481213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481210#factFINAL assume true; 481203#factEXIT >#72#return; 481197#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481196#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 481195#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481193#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481181#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 481162#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 481178#$Ultimate##0 ~n := #in~n; 481201#L25 assume !(~n <= 0); 480792#L26 call #t~ret0 := fact(~n - 1);< 481191#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481177#factFINAL assume true; 481094#factEXIT >#68#return; 481171#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 481176#$Ultimate##0 ~n := #in~n; 481194#L25 assume !(~n <= 0); 481188#L26 call #t~ret0 := fact(~n - 1);< 481192#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481177#factFINAL assume true; 481094#factEXIT >#70#return; 481067#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 479300#$Ultimate##0 ~n := #in~n; 481859#L25 assume ~n <= 0;#res := 1; 481207#factFINAL assume true; 480997#factEXIT >#72#return; 480996#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 480995#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 480993#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 480992#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 480990#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479426#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480759#$Ultimate##0 ~n := #in~n; 481209#L25 assume !(~n <= 0); 480798#L26 call #t~ret0 := fact(~n - 1);< 481191#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 480985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480914#factFINAL assume true; 480873#factEXIT >#74#return; 480897#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479502#$Ultimate##0 ~n := #in~n; 481308#L25 assume !(~n <= 0); 481184#L26 call #t~ret0 := fact(~n - 1);< 481192#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480986#factFINAL assume true; 480917#factEXIT >#76#return; 480918#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 479502#$Ultimate##0 ~n := #in~n; 481308#L25 assume !(~n <= 0); 481184#L26 call #t~ret0 := fact(~n - 1);< 481192#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480986#factFINAL assume true; 480917#factEXIT >#78#return; 480926#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481789#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 481787#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481785#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481783#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479350#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479275#$Ultimate##0 ~n := #in~n; 481862#L25 assume !(~n <= 0); 480789#L26 call #t~ret0 := fact(~n - 1);< 480963#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481221#factFINAL assume true; 480973#factEXIT >#66#return; 480977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481389#factFINAL assume true; 480743#factEXIT >#74#return; 479501#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479502#$Ultimate##0 ~n := #in~n; 481308#L25 assume !(~n <= 0); 481184#L26 call #t~ret0 := fact(~n - 1);< 481192#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480986#factFINAL assume true; 480917#factEXIT >#76#return; 480877#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 481260#$Ultimate##0 ~n := #in~n; 481274#L25 assume !(~n <= 0); 481187#L26 call #t~ret0 := fact(~n - 1);< 481254#$Ultimate##0 ~n := #in~n; 481803#L25 assume !(~n <= 0); 481342#L26 call #t~ret0 := fact(~n - 1);< 481345#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 480985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480914#factFINAL assume true; 480873#factEXIT >#78#return; 480893#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481868#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 481866#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481865#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481864#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479274#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479275#$Ultimate##0 ~n := #in~n; 481862#L25 assume !(~n <= 0); 480789#L26 call #t~ret0 := fact(~n - 1);< 480963#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481221#factFINAL assume true; 480973#factEXIT >#66#return; 480971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480955#factFINAL assume true; 480900#factEXIT >#66#return; 479475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479306#factFINAL assume true; 479436#factEXIT >#74#return; 480761#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479502#$Ultimate##0 ~n := #in~n; 481308#L25 assume !(~n <= 0); 481184#L26 call #t~ret0 := fact(~n - 1);< 481192#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480986#factFINAL assume true; 480917#factEXIT >#76#return; 479364#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480752#$Ultimate##0 ~n := #in~n; 481279#L25 assume !(~n <= 0); 480906#L26 call #t~ret0 := fact(~n - 1);< 480982#$Ultimate##0 ~n := #in~n; 481277#L25 assume !(~n <= 0); 480974#L26 call #t~ret0 := fact(~n - 1);< 481249#$Ultimate##0 ~n := #in~n; 481804#L25 assume !(~n <= 0); 481242#L26 call #t~ret0 := fact(~n - 1);< 481344#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481221#factFINAL assume true; 480973#factEXIT >#66#return; 480977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481389#factFINAL assume true; 480743#factEXIT >#78#return; 480749#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481629#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 481628#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481627#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481625#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479988#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480588#$Ultimate##0 ~n := #in~n; 480669#L25 assume !(~n <= 0); 480479#L26 call #t~ret0 := fact(~n - 1);< 480654#$Ultimate##0 ~n := #in~n; 480677#L25 assume !(~n <= 0); 480467#L26 call #t~ret0 := fact(~n - 1);< 480598#$Ultimate##0 ~n := #in~n; 480687#L25 assume !(~n <= 0); 480474#L26 call #t~ret0 := fact(~n - 1);< 480605#$Ultimate##0 ~n := #in~n; 480627#L25 assume !(~n <= 0); 480472#L26 call #t~ret0 := fact(~n - 1);< 480622#$Ultimate##0 ~n := #in~n; 480627#L25 assume !(~n <= 0); 480472#L26 call #t~ret0 := fact(~n - 1);< 480622#$Ultimate##0 ~n := #in~n; 480626#L25 assume ~n <= 0;#res := 1; 480624#factFINAL assume true; 480620#factEXIT >#66#return; 480619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480618#factFINAL assume true; 480610#factEXIT >#66#return; 480608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480606#factFINAL assume true; 480600#factEXIT >#66#return; 480599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480597#factFINAL assume true; 480592#factEXIT >#66#return; 480595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480668#factFINAL assume true; 480652#factEXIT >#66#return; 480649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480645#factFINAL assume true; 480640#factEXIT >#74#return; 479499#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479500#$Ultimate##0 ~n := #in~n; 480695#L25 assume !(~n <= 0); 480692#L26 call #t~ret0 := fact(~n - 1);< 480693#$Ultimate##0 ~n := #in~n; 480584#L25 assume ~n <= 0;#res := 1; 480694#factFINAL assume true; 480691#factEXIT >#66#return; 480690#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480689#factFINAL assume true; 480688#factEXIT >#76#return; 479937#L30-7 [2023-02-17 09:42:47,702 INFO L750 eck$LassoCheckResult]: Loop: 479937#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480590#$Ultimate##0 ~n := #in~n; 480686#L25 assume !(~n <= 0); 480593#L26 call #t~ret0 := fact(~n - 1);< 480596#$Ultimate##0 ~n := #in~n; 480680#L25 assume !(~n <= 0); 480601#L26 call #t~ret0 := fact(~n - 1);< 480604#$Ultimate##0 ~n := #in~n; 480615#L25 assume !(~n <= 0); 480611#L26 call #t~ret0 := fact(~n - 1);< 480613#$Ultimate##0 ~n := #in~n; 480625#L25 assume !(~n <= 0); 480621#L26 call #t~ret0 := fact(~n - 1);< 480623#$Ultimate##0 ~n := #in~n; 480626#L25 assume ~n <= 0;#res := 1; 480624#factFINAL assume true; 480620#factEXIT >#66#return; 480619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480618#factFINAL assume true; 480610#factEXIT >#66#return; 480608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480606#factFINAL assume true; 480600#factEXIT >#66#return; 480599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480597#factFINAL assume true; 480592#factEXIT >#66#return; 480591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480589#factFINAL assume true; 479917#factEXIT >#78#return; 479967#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481523#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 481522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481521#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 481520#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 481519#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 481518#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481517#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479818#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479879#$Ultimate##0 ~n := #in~n; 479876#L25 assume !(~n <= 0); 479836#L26 call #t~ret0 := fact(~n - 1);< 479873#$Ultimate##0 ~n := #in~n; 479883#L25 assume !(~n <= 0); 479829#L26 call #t~ret0 := fact(~n - 1);< 479878#$Ultimate##0 ~n := #in~n; 479881#L25 assume ~n <= 0;#res := 1; 479880#factFINAL assume true; 479877#factEXIT >#66#return; 479875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479872#factFINAL assume true; 479869#factEXIT >#66#return; 479870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481623#factFINAL assume true; 481622#factEXIT >#68#return; 479553#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479567#$Ultimate##0 ~n := #in~n; 479566#L25 assume ~n <= 0;#res := 1; 479565#factFINAL assume true; 479546#factEXIT >#70#return; 479526#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 479515#$Ultimate##0 ~n := #in~n; 479525#L25 assume !(~n <= 0); 479447#L26 call #t~ret0 := fact(~n - 1);< 480988#$Ultimate##0 ~n := #in~n; 480987#L25 assume !(~n <= 0); 479443#L26 call #t~ret0 := fact(~n - 1);< 479448#$Ultimate##0 ~n := #in~n; 481847#L25 assume ~n <= 0;#res := 1; 481840#factFINAL assume true; 481841#factEXIT >#66#return; 479467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479474#factFINAL assume true; 479518#factEXIT >#66#return; 479520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481794#factFINAL assume true; 481385#factEXIT >#72#return; 481383#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481381#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 481379#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481377#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481375#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479495#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479489#$Ultimate##0 ~n := #in~n; 479498#L25 assume !(~n <= 0); 480794#L26 call #t~ret0 := fact(~n - 1);< 480963#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481797#factFINAL assume true; 481358#factEXIT >#68#return; 481169#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479487#$Ultimate##0 ~n := #in~n; 481202#L25 assume !(~n <= 0); 480857#L26 call #t~ret0 := fact(~n - 1);< 480868#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481180#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481177#factFINAL assume true; 481094#factEXIT >#70#return; 481008#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 481269#$Ultimate##0 ~n := #in~n; 481800#L25 assume !(~n <= 0); 481185#L26 call #t~ret0 := fact(~n - 1);< 481192#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481796#factFINAL assume true; 481371#factEXIT >#72#return; 481369#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481367#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 481365#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481363#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481362#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479497#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479489#$Ultimate##0 ~n := #in~n; 479498#L25 assume !(~n <= 0); 480794#L26 call #t~ret0 := fact(~n - 1);< 480963#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481797#factFINAL assume true; 481358#factEXIT >#68#return; 481137#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 479487#$Ultimate##0 ~n := #in~n; 481202#L25 assume !(~n <= 0); 480857#L26 call #t~ret0 := fact(~n - 1);< 480868#$Ultimate##0 ~n := #in~n; 481255#L25 assume !(~n <= 0); 480904#L26 call #t~ret0 := fact(~n - 1);< 481248#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481797#factFINAL assume true; 481358#factEXIT >#70#return; 481052#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 481269#$Ultimate##0 ~n := #in~n; 481800#L25 assume ~n <= 0;#res := 1; 481207#factFINAL assume true; 480997#factEXIT >#72#return; 481087#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481585#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 481584#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481583#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481582#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479423#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479275#$Ultimate##0 ~n := #in~n; 481862#L25 assume !(~n <= 0); 480789#L26 call #t~ret0 := fact(~n - 1);< 480963#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481221#factFINAL assume true; 480973#factEXIT >#66#return; 480977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481389#factFINAL assume true; 480743#factEXIT >#74#return; 479330#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480915#$Ultimate##0 ~n := #in~n; 481445#L25 assume !(~n <= 0); 480856#L26 call #t~ret0 := fact(~n - 1);< 480868#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480986#factFINAL assume true; 480917#factEXIT >#76#return; 480880#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 481260#$Ultimate##0 ~n := #in~n; 481274#L25 assume !(~n <= 0); 481187#L26 call #t~ret0 := fact(~n - 1);< 481254#$Ultimate##0 ~n := #in~n; 481205#L25 assume ~n <= 0;#res := 1; 481198#factFINAL assume true; 481183#factEXIT >#66#return; 481189#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480986#factFINAL assume true; 480917#factEXIT >#78#return; 480930#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481924#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 481923#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481921#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481919#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479399#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 479275#$Ultimate##0 ~n := #in~n; 481862#L25 assume !(~n <= 0); 480789#L26 call #t~ret0 := fact(~n - 1);< 480963#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481221#factFINAL assume true; 480973#factEXIT >#66#return; 480971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480955#factFINAL assume true; 480900#factEXIT >#66#return; 479475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 479306#factFINAL assume true; 479436#factEXIT >#74#return; 479409#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480915#$Ultimate##0 ~n := #in~n; 481445#L25 assume !(~n <= 0); 480856#L26 call #t~ret0 := fact(~n - 1);< 480868#$Ultimate##0 ~n := #in~n; 481255#L25 assume !(~n <= 0); 480904#L26 call #t~ret0 := fact(~n - 1);< 481248#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 480985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480914#factFINAL assume true; 480873#factEXIT >#76#return; 480885#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 481260#$Ultimate##0 ~n := #in~n; 481274#L25 assume !(~n <= 0); 481187#L26 call #t~ret0 := fact(~n - 1);< 481254#$Ultimate##0 ~n := #in~n; 481803#L25 assume !(~n <= 0); 481342#L26 call #t~ret0 := fact(~n - 1);< 481345#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 480985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480914#factFINAL assume true; 480873#factEXIT >#78#return; 480895#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 481897#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 481895#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481893#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481892#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 480717#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480933#$Ultimate##0 ~n := #in~n; 481878#L25 assume !(~n <= 0); 480804#L26 call #t~ret0 := fact(~n - 1);< 481877#$Ultimate##0 ~n := #in~n; 481876#L25 assume !(~n <= 0); 480783#L26 call #t~ret0 := fact(~n - 1);< 481875#$Ultimate##0 ~n := #in~n; 481874#L25 assume !(~n <= 0); 480787#L26 call #t~ret0 := fact(~n - 1);< 480963#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481329#L25 assume !(~n <= 0); 480801#L26 call #t~ret0 := fact(~n - 1);< 481347#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481221#factFINAL assume true; 480973#factEXIT >#66#return; 480971#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480955#factFINAL assume true; 480900#factEXIT >#66#return; 480871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480864#factFINAL assume true; 480852#factEXIT >#66#return; 480859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480936#factFINAL assume true; 480934#factEXIT >#74#return; 479370#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480915#$Ultimate##0 ~n := #in~n; 481445#L25 assume !(~n <= 0); 480856#L26 call #t~ret0 := fact(~n - 1);< 480868#$Ultimate##0 ~n := #in~n; 481255#L25 assume !(~n <= 0); 480904#L26 call #t~ret0 := fact(~n - 1);< 481248#$Ultimate##0 ~n := #in~n; 481278#L25 assume !(~n <= 0); 480975#L26 call #t~ret0 := fact(~n - 1);< 481346#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 481238#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481221#factFINAL assume true; 480973#factEXIT >#66#return; 480977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481389#factFINAL assume true; 480743#factEXIT >#76#return; 479400#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 480916#$Ultimate##0 ~n := #in~n; 481313#L25 assume !(~n <= 0); 480901#L26 call #t~ret0 := fact(~n - 1);< 481199#$Ultimate##0 ~n := #in~n; 481278#L25 assume !(~n <= 0); 480975#L26 call #t~ret0 := fact(~n - 1);< 481346#$Ultimate##0 ~n := #in~n; 481356#L25 assume ~n <= 0;#res := 1; 481808#factFINAL assume true; 481341#factEXIT >#66#return; 481340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 481251#factFINAL assume true; 481240#factEXIT >#66#return; 480985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480914#factFINAL assume true; 480873#factEXIT >#78#return; 480741#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 480738#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 480739#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 481451#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 481450#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 479989#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 480588#$Ultimate##0 ~n := #in~n; 480669#L25 assume !(~n <= 0); 480479#L26 call #t~ret0 := fact(~n - 1);< 480654#$Ultimate##0 ~n := #in~n; 480677#L25 assume !(~n <= 0); 480467#L26 call #t~ret0 := fact(~n - 1);< 480598#$Ultimate##0 ~n := #in~n; 480687#L25 assume !(~n <= 0); 480474#L26 call #t~ret0 := fact(~n - 1);< 480605#$Ultimate##0 ~n := #in~n; 480627#L25 assume !(~n <= 0); 480472#L26 call #t~ret0 := fact(~n - 1);< 480622#$Ultimate##0 ~n := #in~n; 480627#L25 assume !(~n <= 0); 480472#L26 call #t~ret0 := fact(~n - 1);< 480622#$Ultimate##0 ~n := #in~n; 480626#L25 assume ~n <= 0;#res := 1; 480624#factFINAL assume true; 480620#factEXIT >#66#return; 480619#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480618#factFINAL assume true; 480610#factEXIT >#66#return; 480608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480606#factFINAL assume true; 480600#factEXIT >#66#return; 480599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480597#factFINAL assume true; 480592#factEXIT >#66#return; 480595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480668#factFINAL assume true; 480652#factEXIT >#66#return; 480649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480645#factFINAL assume true; 480640#factEXIT >#74#return; 479931#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 480586#$Ultimate##0 ~n := #in~n; 480585#L25 assume !(~n <= 0); 480580#L26 call #t~ret0 := fact(~n - 1);< 480583#$Ultimate##0 ~n := #in~n; 480584#L25 assume ~n <= 0;#res := 1; 480694#factFINAL assume true; 480691#factEXIT >#66#return; 480690#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 480689#factFINAL assume true; 480688#factEXIT >#76#return; 479937#L30-7 [2023-02-17 09:42:47,703 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:47,703 INFO L85 PathProgramCache]: Analyzing trace with hash 415938653, now seen corresponding path program 38 times [2023-02-17 09:42:47,703 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:47,703 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [650840058] [2023-02-17 09:42:47,703 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:47,704 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:47,732 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:47,733 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1624488235] [2023-02-17 09:42:47,733 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:47,733 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:47,733 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:47,737 INFO L229 MonitoredProcess]: Starting monitored process 225 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:47,738 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (225)] Waiting until timeout for monitored process [2023-02-17 09:42:48,443 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:48,444 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:48,448 INFO L263 TraceCheckSpWp]: Trace formula consists of 1300 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:42:48,452 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:48,513 INFO L134 CoverageAnalysis]: Checked inductivity of 20307 backedges. 10029 proven. 24 refuted. 0 times theorem prover too weak. 10254 trivial. 0 not checked. [2023-02-17 09:42:48,513 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:48,653 INFO L134 CoverageAnalysis]: Checked inductivity of 20307 backedges. 697 proven. 957 refuted. 0 times theorem prover too weak. 18653 trivial. 0 not checked. [2023-02-17 09:42:48,653 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:48,653 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [650840058] [2023-02-17 09:42:48,653 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:48,653 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1624488235] [2023-02-17 09:42:48,654 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1624488235] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:48,654 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:48,654 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 24 [2023-02-17 09:42:48,654 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [889587451] [2023-02-17 09:42:48,654 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:48,654 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:48,654 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:48,655 INFO L85 PathProgramCache]: Analyzing trace with hash -109932731, now seen corresponding path program 32 times [2023-02-17 09:42:48,655 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:48,655 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [231541160] [2023-02-17 09:42:48,655 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:48,655 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:48,668 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:48,669 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1370983806] [2023-02-17 09:42:48,669 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:42:48,669 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:48,669 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:48,672 INFO L229 MonitoredProcess]: Starting monitored process 226 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:48,673 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (226)] Waiting until timeout for monitored process [2023-02-17 09:42:49,326 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:42:49,326 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:49,330 INFO L263 TraceCheckSpWp]: Trace formula consists of 905 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-17 09:42:49,332 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:49,367 INFO L134 CoverageAnalysis]: Checked inductivity of 10675 backedges. 5673 proven. 207 refuted. 0 times theorem prover too weak. 4795 trivial. 0 not checked. [2023-02-17 09:42:49,367 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:49,445 INFO L134 CoverageAnalysis]: Checked inductivity of 10675 backedges. 323 proven. 765 refuted. 0 times theorem prover too weak. 9587 trivial. 0 not checked. [2023-02-17 09:42:49,445 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:49,445 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [231541160] [2023-02-17 09:42:49,445 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:49,446 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1370983806] [2023-02-17 09:42:49,446 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1370983806] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:49,446 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:49,446 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 16 [2023-02-17 09:42:49,446 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [178544735] [2023-02-17 09:42:49,446 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:49,446 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:49,446 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:49,447 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2023-02-17 09:42:49,447 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=197, Unknown=0, NotChecked=0, Total=240 [2023-02-17 09:42:49,447 INFO L87 Difference]: Start difference. First operand 2699 states and 5305 transitions. cyclomatic complexity: 2633 Second operand has 16 states, 13 states have (on average 3.923076923076923) internal successors, (51), 16 states have internal predecessors, (51), 11 states have call successors, (21), 2 states have call predecessors, (21), 6 states have return successors, (21), 7 states have call predecessors, (21), 11 states have call successors, (21) [2023-02-17 09:42:49,772 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:49,772 INFO L93 Difference]: Finished difference Result 2726 states and 5311 transitions. [2023-02-17 09:42:49,772 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 2726 states and 5311 transitions. [2023-02-17 09:42:49,787 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 912 [2023-02-17 09:42:49,805 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 2726 states to 2724 states and 5304 transitions. [2023-02-17 09:42:49,806 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 546 [2023-02-17 09:42:49,806 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 546 [2023-02-17 09:42:49,806 INFO L73 IsDeterministic]: Start isDeterministic. Operand 2724 states and 5304 transitions. [2023-02-17 09:42:49,806 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:49,806 INFO L218 hiAutomatonCegarLoop]: Abstraction has 2724 states and 5304 transitions. [2023-02-17 09:42:49,807 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 2724 states and 5304 transitions. [2023-02-17 09:42:49,848 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 2724 to 2698. [2023-02-17 09:42:49,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2698 states, 1615 states have (on average 1.0464396284829722) internal successors, (1690), 1600 states have internal predecessors, (1690), 837 states have call successors, (855), 326 states have call predecessors, (855), 246 states have return successors, (2710), 771 states have call predecessors, (2710), 837 states have call successors, (2710) [2023-02-17 09:42:49,860 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2698 states to 2698 states and 5255 transitions. [2023-02-17 09:42:49,860 INFO L240 hiAutomatonCegarLoop]: Abstraction has 2698 states and 5255 transitions. [2023-02-17 09:42:49,860 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2023-02-17 09:42:49,861 INFO L428 stractBuchiCegarLoop]: Abstraction has 2698 states and 5255 transitions. [2023-02-17 09:42:49,861 INFO L335 stractBuchiCegarLoop]: ======== Iteration 62 ============ [2023-02-17 09:42:49,861 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 2698 states and 5255 transitions. [2023-02-17 09:42:49,868 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 912 [2023-02-17 09:42:49,869 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:49,869 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:49,871 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [92, 92, 57, 57, 57, 57, 35, 12, 11, 9, 9, 9, 9, 9, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1] [2023-02-17 09:42:49,871 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [69, 69, 48, 48, 48, 48, 21, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:42:49,871 INFO L748 eck$LassoCheckResult]: Stem: 490816#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 490747#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 490748#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 490771#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 490817#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 491451#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 491450#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 491448#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 491449#$Ultimate##0 ~n := #in~n; 491453#L25 assume ~n <= 0;#res := 1; 491452#factFINAL assume true; 491447#factEXIT >#68#return; 491441#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 491442#$Ultimate##0 ~n := #in~n; 491444#L25 assume ~n <= 0;#res := 1; 491443#factFINAL assume true; 491440#factEXIT >#70#return; 491438#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 491439#$Ultimate##0 ~n := #in~n; 491446#L25 assume ~n <= 0;#res := 1; 491445#factFINAL assume true; 491437#factEXIT >#72#return; 491424#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 491421#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 491413#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 491412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 491411#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 491409#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 491410#$Ultimate##0 ~n := #in~n; 491435#L25 assume !(~n <= 0); 491417#L26 call #t~ret0 := fact(~n - 1);< 491419#$Ultimate##0 ~n := #in~n; 491425#L25 assume ~n <= 0;#res := 1; 491422#factFINAL assume true; 491415#factEXIT >#66#return; 491418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491420#factFINAL assume true; 491408#factEXIT >#74#return; 491374#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 491375#$Ultimate##0 ~n := #in~n; 491388#L25 assume ~n <= 0;#res := 1; 491387#factFINAL assume true; 491373#factEXIT >#76#return; 491370#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 491371#$Ultimate##0 ~n := #in~n; 491423#L25 assume !(~n <= 0); 491416#L26 call #t~ret0 := fact(~n - 1);< 491419#$Ultimate##0 ~n := #in~n; 491425#L25 assume ~n <= 0;#res := 1; 491422#factFINAL assume true; 491415#factEXIT >#66#return; 491407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491390#factFINAL assume true; 491369#factEXIT >#78#return; 491368#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 491367#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 491366#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 491364#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 491363#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 491344#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 491345#$Ultimate##0 ~n := #in~n; 491357#L25 assume !(~n <= 0); 491353#L26 call #t~ret0 := fact(~n - 1);< 491355#$Ultimate##0 ~n := #in~n; 491398#L25 assume !(~n <= 0); 491354#L26 call #t~ret0 := fact(~n - 1);< 491397#$Ultimate##0 ~n := #in~n; 491436#L25 assume ~n <= 0;#res := 1; 491434#factFINAL assume true; 491428#factEXIT >#66#return; 491427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491402#factFINAL assume true; 491394#factEXIT >#66#return; 491396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491426#factFINAL assume true; 491404#factEXIT >#74#return; 491400#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 491401#$Ultimate##0 ~n := #in~n; 491433#L25 assume ~n <= 0;#res := 1; 491431#factFINAL assume true; 491399#factEXIT >#76#return; 491359#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 491360#$Ultimate##0 ~n := #in~n; 491405#L25 assume !(~n <= 0); 491395#L26 call #t~ret0 := fact(~n - 1);< 491403#$Ultimate##0 ~n := #in~n; 491432#L25 assume !(~n <= 0); 491429#L26 call #t~ret0 := fact(~n - 1);< 491430#$Ultimate##0 ~n := #in~n; 491436#L25 assume ~n <= 0;#res := 1; 491434#factFINAL assume true; 491428#factEXIT >#66#return; 491427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491402#factFINAL assume true; 491394#factEXIT >#66#return; 491376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491372#factFINAL assume true; 491358#factEXIT >#78#return; 491356#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 491351#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 491349#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 491347#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 491346#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 491343#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 491345#$Ultimate##0 ~n := #in~n; 491357#L25 assume !(~n <= 0); 491353#L26 call #t~ret0 := fact(~n - 1);< 491355#$Ultimate##0 ~n := #in~n; 491398#L25 assume !(~n <= 0); 491354#L26 call #t~ret0 := fact(~n - 1);< 491397#$Ultimate##0 ~n := #in~n; 491398#L25 assume !(~n <= 0); 491354#L26 call #t~ret0 := fact(~n - 1);< 491397#$Ultimate##0 ~n := #in~n; 491436#L25 assume ~n <= 0;#res := 1; 491434#factFINAL assume true; 491428#factEXIT >#66#return; 491427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491402#factFINAL assume true; 491394#factEXIT >#66#return; 491392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491391#factFINAL assume true; 491352#factEXIT >#66#return; 491350#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491348#factFINAL assume true; 491342#factEXIT >#74#return; 491340#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 491341#$Ultimate##0 ~n := #in~n; 491379#L25 assume ~n <= 0;#res := 1; 491378#factFINAL assume true; 491339#factEXIT >#76#return; 491325#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 491335#$Ultimate##0 ~n := #in~n; 491330#L25 assume !(~n <= 0); 491308#L26 call #t~ret0 := fact(~n - 1);< 491326#$Ultimate##0 ~n := #in~n; 491455#L25 assume !(~n <= 0); 491307#L26 call #t~ret0 := fact(~n - 1);< 491311#$Ultimate##0 ~n := #in~n; 491384#L25 assume !(~n <= 0); 491309#L26 call #t~ret0 := fact(~n - 1);< 491383#$Ultimate##0 ~n := #in~n; 491386#L25 assume ~n <= 0;#res := 1; 491385#factFINAL assume true; 491382#factEXIT >#66#return; 491381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491380#factFINAL assume true; 491377#factEXIT >#66#return; 491338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491337#factFINAL assume true; 491334#factEXIT >#66#return; 491310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491414#factFINAL assume true; 491406#factEXIT >#78#return; 491389#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 491317#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 491315#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 491313#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 491312#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 491298#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 491299#$Ultimate##0 ~n := #in~n; 491319#L25 assume !(~n <= 0); 491306#L26 call #t~ret0 := fact(~n - 1);< 491311#$Ultimate##0 ~n := #in~n; 491384#L25 assume !(~n <= 0); 491309#L26 call #t~ret0 := fact(~n - 1);< 491383#$Ultimate##0 ~n := #in~n; 491384#L25 assume !(~n <= 0); 491309#L26 call #t~ret0 := fact(~n - 1);< 491383#$Ultimate##0 ~n := #in~n; 491384#L25 assume !(~n <= 0); 491309#L26 call #t~ret0 := fact(~n - 1);< 491383#$Ultimate##0 ~n := #in~n; 491386#L25 assume ~n <= 0;#res := 1; 491385#factFINAL assume true; 491382#factEXIT >#66#return; 491381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491380#factFINAL assume true; 491377#factEXIT >#66#return; 491338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491337#factFINAL assume true; 491334#factEXIT >#66#return; 491329#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491324#factFINAL assume true; 491305#factEXIT >#66#return; 491303#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491301#factFINAL assume true; 491297#factEXIT >#74#return; 491291#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 491292#$Ultimate##0 ~n := #in~n; 491296#L25 assume ~n <= 0;#res := 1; 491295#factFINAL assume true; 491290#factEXIT >#76#return; 491284#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 491288#$Ultimate##0 ~n := #in~n; 491287#L25 assume !(~n <= 0); 491256#L26 call #t~ret0 := fact(~n - 1);< 491285#$Ultimate##0 ~n := #in~n; 491332#L25 assume !(~n <= 0); 491263#L26 call #t~ret0 := fact(~n - 1);< 491294#$Ultimate##0 ~n := #in~n; 491333#L25 assume !(~n <= 0); 491259#L26 call #t~ret0 := fact(~n - 1);< 491328#$Ultimate##0 ~n := #in~n; 491336#L25 assume ~n <= 0;#res := 1; 491331#factFINAL assume true; 491327#factEXIT >#66#return; 491322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491321#factFINAL assume true; 491316#factEXIT >#66#return; 491314#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491300#factFINAL assume true; 491293#factEXIT >#66#return; 491280#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491463#factFINAL assume true; 491461#factEXIT >#78#return; 491141#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 491139#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 491140#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 491678#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 491677#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 491072#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 491073#$Ultimate##0 ~n := #in~n; 491083#L25 assume !(~n <= 0); 491080#L26 call #t~ret0 := fact(~n - 1);< 491081#$Ultimate##0 ~n := #in~n; 491094#L25 assume !(~n <= 0); 491092#L26 call #t~ret0 := fact(~n - 1);< 491093#$Ultimate##0 ~n := #in~n; 491101#L25 assume !(~n <= 0); 491098#L26 call #t~ret0 := fact(~n - 1);< 491100#$Ultimate##0 ~n := #in~n; 491114#L25 assume !(~n <= 0); 491099#L26 call #t~ret0 := fact(~n - 1);< 491111#$Ultimate##0 ~n := #in~n; 491114#L25 assume !(~n <= 0); 491099#L26 call #t~ret0 := fact(~n - 1);< 491111#$Ultimate##0 ~n := #in~n; 491127#L25 assume ~n <= 0;#res := 1; 491126#factFINAL assume true; 491125#factEXIT >#66#return; 491116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491113#factFINAL assume true; 491110#factEXIT >#66#return; 491109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491106#factFINAL assume true; 491097#factEXIT >#66#return; 491096#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491095#factFINAL assume true; 491091#factEXIT >#66#return; 491089#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491088#factFINAL assume true; 491079#factEXIT >#66#return; 491078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491077#factFINAL assume true; 491071#factEXIT >#74#return; 491068#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 491069#$Ultimate##0 ~n := #in~n; 491108#L25 assume ~n <= 0;#res := 1; 491105#factFINAL assume true; 491067#factEXIT >#76#return; 490900#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 490961#$Ultimate##0 ~n := #in~n; 490956#L25 assume !(~n <= 0); 490921#L26 call #t~ret0 := fact(~n - 1);< 490954#$Ultimate##0 ~n := #in~n; 491122#L25 assume !(~n <= 0); 490918#L26 call #t~ret0 := fact(~n - 1);< 490964#$Ultimate##0 ~n := #in~n; 491131#L25 assume !(~n <= 0); 490916#L26 call #t~ret0 := fact(~n - 1);< 491120#$Ultimate##0 ~n := #in~n; 491136#L25 assume !(~n <= 0); 490925#L26 call #t~ret0 := fact(~n - 1);< 490948#$Ultimate##0 ~n := #in~n; 491134#L25 assume !(~n <= 0); 490924#L26 call #t~ret0 := fact(~n - 1);< 491133#$Ultimate##0 ~n := #in~n; 491137#L25 assume ~n <= 0;#res := 1; 491135#factFINAL assume true; 491132#factEXIT >#66#return; 491129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491128#factFINAL assume true; 491124#factEXIT >#66#return; 491123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491121#factFINAL assume true; 491119#factEXIT >#66#return; 491074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491070#factFINAL assume true; 490963#factEXIT >#66#return; 490962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 490958#factFINAL assume true; 490953#factEXIT >#66#return; 490929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491075#factFINAL assume true; 490899#factEXIT >#78#return; 490894#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 490893#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 490892#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 490891#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 490890#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 490889#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 490888#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 490887#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 490879#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 490883#$Ultimate##0 ~n := #in~n; 491780#L25 assume !(~n <= 0); 491720#L26 call #t~ret0 := fact(~n - 1);< 491778#$Ultimate##0 ~n := #in~n; 492809#L25 assume ~n <= 0;#res := 1; 492806#factFINAL assume true; 492805#factEXIT >#66#return; 492804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492802#factFINAL assume true; 492799#factEXIT >#68#return; 490869#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490885#$Ultimate##0 ~n := #in~n; 490886#L25 assume ~n <= 0;#res := 1; 490884#factFINAL assume true; 490865#factEXIT >#70#return; 490881#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492764#$Ultimate##0 ~n := #in~n; 492797#L25 assume !(~n <= 0); 490755#L26 call #t~ret0 := fact(~n - 1);< 492796#$Ultimate##0 ~n := #in~n; 492801#L25 assume ~n <= 0;#res := 1; 492800#factFINAL assume true; 492795#factEXIT >#66#return; 492770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492769#factFINAL assume true; 492763#factEXIT >#72#return; 492757#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 492752#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 492751#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 492749#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 492746#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492599#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492618#$Ultimate##0 ~n := #in~n; 492737#L25 assume !(~n <= 0); 492197#L26 call #t~ret0 := fact(~n - 1);< 492331#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492327#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492765#factFINAL assume true; 492759#factEXIT >#68#return; 490798#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490799#$Ultimate##0 ~n := #in~n; 492798#L25 assume !(~n <= 0); 492325#L26 call #t~ret0 := fact(~n - 1);< 492329#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492327#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492765#factFINAL assume true; 492759#factEXIT >#70#return; 492523#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492620#$Ultimate##0 ~n := #in~n; 492734#L25 assume ~n <= 0;#res := 1; 492619#factFINAL assume true; 492475#factEXIT >#72#return; 492550#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 492632#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 492624#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 492622#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 492621#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492029#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492073#$Ultimate##0 ~n := #in~n; 492669#L25 assume !(~n <= 0); 492187#L26 call #t~ret0 := fact(~n - 1);< 492331#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492285#factFINAL assume true; 491927#factEXIT >#74#return; 492070#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 492229#$Ultimate##0 ~n := #in~n; 492663#L25 assume !(~n <= 0); 492326#L26 call #t~ret0 := fact(~n - 1);< 492329#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492260#factFINAL assume true; 492213#factEXIT >#76#return; 492218#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492229#$Ultimate##0 ~n := #in~n; 492663#L25 assume !(~n <= 0); 492326#L26 call #t~ret0 := fact(~n - 1);< 492329#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492260#factFINAL assume true; 492213#factEXIT >#78#return; 492223#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 493312#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 493311#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 493309#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 493307#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492154#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492181#$Ultimate##0 ~n := #in~n; 493242#L25 assume !(~n <= 0); 490803#L26 call #t~ret0 := fact(~n - 1);< 490802#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492243#factFINAL assume true; 492185#factEXIT >#66#return; 492184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492180#factFINAL assume true; 492152#factEXIT >#74#return; 492161#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 492229#$Ultimate##0 ~n := #in~n; 492663#L25 assume !(~n <= 0); 492326#L26 call #t~ret0 := fact(~n - 1);< 492329#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492260#factFINAL assume true; 492213#factEXIT >#76#return; 491933#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492342#$Ultimate##0 ~n := #in~n; 492664#L25 assume !(~n <= 0); 492249#L26 call #t~ret0 := fact(~n - 1);< 492330#$Ultimate##0 ~n := #in~n; 492748#L25 assume !(~n <= 0); 492626#L26 call #t~ret0 := fact(~n - 1);< 492628#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492285#factFINAL assume true; 491927#factEXIT >#78#return; 492044#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 492340#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 492338#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 492336#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 492334#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492156#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492181#$Ultimate##0 ~n := #in~n; 493242#L25 assume !(~n <= 0); 490803#L26 call #t~ret0 := fact(~n - 1);< 490802#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492243#factFINAL assume true; 492185#factEXIT >#66#return; 492210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492693#factFINAL assume true; 492675#factEXIT >#66#return; 492674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492332#factFINAL assume true; 492263#factEXIT >#74#return; 492214#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 492229#$Ultimate##0 ~n := #in~n; 492663#L25 assume !(~n <= 0); 492326#L26 call #t~ret0 := fact(~n - 1);< 492329#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492260#factFINAL assume true; 492213#factEXIT >#76#return; 492155#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492162#$Ultimate##0 ~n := #in~n; 492861#L25 assume !(~n <= 0); 492207#L26 call #t~ret0 := fact(~n - 1);< 492701#$Ultimate##0 ~n := #in~n; 492858#L25 assume !(~n <= 0); 492203#L26 call #t~ret0 := fact(~n - 1);< 492259#$Ultimate##0 ~n := #in~n; 492738#L25 assume !(~n <= 0); 492252#L26 call #t~ret0 := fact(~n - 1);< 492627#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492243#factFINAL assume true; 492185#factEXIT >#66#return; 492184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492180#factFINAL assume true; 492152#factEXIT >#78#return; 492144#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 492141#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 492138#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 492137#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 492076#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 490718#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 490719#$Ultimate##0 ~n := #in~n; 490785#L25 assume !(~n <= 0); 490793#L26 call #t~ret0 := fact(~n - 1);< 491902#$Ultimate##0 ~n := #in~n; 492705#L25 assume !(~n <= 0); 491878#L26 call #t~ret0 := fact(~n - 1);< 492096#$Ultimate##0 ~n := #in~n; 493268#L25 assume !(~n <= 0); 491883#L26 call #t~ret0 := fact(~n - 1);< 492147#$Ultimate##0 ~n := #in~n; 492177#L25 assume !(~n <= 0); 491882#L26 call #t~ret0 := fact(~n - 1);< 492173#$Ultimate##0 ~n := #in~n; 492177#L25 assume !(~n <= 0); 491882#L26 call #t~ret0 := fact(~n - 1);< 492173#$Ultimate##0 ~n := #in~n; 492176#L25 assume ~n <= 0;#res := 1; 492182#factFINAL assume true; 492171#factEXIT >#66#return; 492170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492165#factFINAL assume true; 491915#factEXIT >#66#return; 491922#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492163#factFINAL assume true; 492145#factEXIT >#66#return; 492142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492139#factFINAL assume true; 492085#factEXIT >#66#return; 492087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492093#factFINAL assume true; 492082#factEXIT >#66#return; 492083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492382#factFINAL assume true; 492283#factEXIT >#74#return; 492092#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490810#$Ultimate##0 ~n := #in~n; 492179#L25 assume !(~n <= 0); 492150#L26 call #t~ret0 := fact(~n - 1);< 492151#$Ultimate##0 ~n := #in~n; 492183#L25 assume ~n <= 0;#res := 1; 492178#factFINAL assume true; 492149#factEXIT >#66#return; 492143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492140#factFINAL assume true; 492090#factEXIT >#76#return; 491904#L30-7 [2023-02-17 09:42:49,871 INFO L750 eck$LassoCheckResult]: Loop: 491904#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492280#$Ultimate##0 ~n := #in~n; 492278#L25 assume !(~n <= 0); 492086#L26 call #t~ret0 := fact(~n - 1);< 492276#$Ultimate##0 ~n := #in~n; 492275#L25 assume !(~n <= 0); 491919#L26 call #t~ret0 := fact(~n - 1);< 492148#$Ultimate##0 ~n := #in~n; 492239#L25 assume !(~n <= 0); 491918#L26 call #t~ret0 := fact(~n - 1);< 492166#$Ultimate##0 ~n := #in~n; 492175#L25 assume !(~n <= 0); 492172#L26 call #t~ret0 := fact(~n - 1);< 492174#$Ultimate##0 ~n := #in~n; 492176#L25 assume ~n <= 0;#res := 1; 492182#factFINAL assume true; 492171#factEXIT >#66#return; 492170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492165#factFINAL assume true; 491915#factEXIT >#66#return; 491922#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492163#factFINAL assume true; 492145#factEXIT >#66#return; 492142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492139#factFINAL assume true; 492085#factEXIT >#66#return; 492079#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491913#factFINAL assume true; 491903#factEXIT >#78#return; 491839#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 490772#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 490773#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 491848#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 491849#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 490763#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 490764#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 490775#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 490738#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 490739#$Ultimate##0 ~n := #in~n; 491763#L25 assume !(~n <= 0); 491717#L26 call #t~ret0 := fact(~n - 1);< 491762#$Ultimate##0 ~n := #in~n; 491769#L25 assume !(~n <= 0); 491716#L26 call #t~ret0 := fact(~n - 1);< 491767#$Ultimate##0 ~n := #in~n; 491770#L25 assume ~n <= 0;#res := 1; 491768#factFINAL assume true; 491766#factEXIT >#66#return; 491765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491761#factFINAL assume true; 491758#factEXIT >#66#return; 491759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492829#factFINAL assume true; 492811#factEXIT >#68#return; 490877#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490885#$Ultimate##0 ~n := #in~n; 490886#L25 assume ~n <= 0;#res := 1; 490884#factFINAL assume true; 490865#factEXIT >#70#return; 490882#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492782#$Ultimate##0 ~n := #in~n; 492823#L25 assume !(~n <= 0); 490757#L26 call #t~ret0 := fact(~n - 1);< 492821#$Ultimate##0 ~n := #in~n; 492803#L25 assume !(~n <= 0); 490753#L26 call #t~ret0 := fact(~n - 1);< 490758#$Ultimate##0 ~n := #in~n; 492884#L25 assume ~n <= 0;#res := 1; 492881#factFINAL assume true; 492836#factEXIT >#66#return; 492833#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492826#factFINAL assume true; 492815#factEXIT >#66#return; 492810#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492807#factFINAL assume true; 492779#factEXIT >#72#return; 492780#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 492932#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 492931#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 492927#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 492926#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492564#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492617#$Ultimate##0 ~n := #in~n; 493255#L25 assume !(~n <= 0); 490805#L26 call #t~ret0 := fact(~n - 1);< 490802#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492616#factFINAL assume true; 492553#factEXIT >#68#return; 492437#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 492442#$Ultimate##0 ~n := #in~n; 492441#L25 assume !(~n <= 0); 492193#L26 call #t~ret0 := fact(~n - 1);< 492440#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492327#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492765#factFINAL assume true; 492759#factEXIT >#70#return; 492493#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492552#$Ultimate##0 ~n := #in~n; 493256#L25 assume !(~n <= 0); 492324#L26 call #t~ret0 := fact(~n - 1);< 492329#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492328#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492758#factFINAL assume true; 492753#factEXIT >#72#return; 492755#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 493222#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 493220#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 493219#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 493217#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492554#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492617#$Ultimate##0 ~n := #in~n; 493255#L25 assume !(~n <= 0); 490805#L26 call #t~ret0 := fact(~n - 1);< 490802#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492616#factFINAL assume true; 492553#factEXIT >#68#return; 492403#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 492442#$Ultimate##0 ~n := #in~n; 492441#L25 assume !(~n <= 0); 492193#L26 call #t~ret0 := fact(~n - 1);< 492440#$Ultimate##0 ~n := #in~n; 492704#L25 assume !(~n <= 0); 492196#L26 call #t~ret0 := fact(~n - 1);< 492702#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492255#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492616#factFINAL assume true; 492553#factEXIT >#70#return; 492496#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492552#$Ultimate##0 ~n := #in~n; 493256#L25 assume ~n <= 0;#res := 1; 492619#factFINAL assume true; 492475#factEXIT >#72#return; 492542#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 493212#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 493210#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 493209#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 493208#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492158#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492181#$Ultimate##0 ~n := #in~n; 493242#L25 assume !(~n <= 0); 490803#L26 call #t~ret0 := fact(~n - 1);< 490802#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492243#factFINAL assume true; 492185#factEXIT >#66#return; 492184#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492180#factFINAL assume true; 492152#factEXIT >#74#return; 492009#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490812#$Ultimate##0 ~n := #in~n; 492655#L25 assume !(~n <= 0); 492188#L26 call #t~ret0 := fact(~n - 1);< 492287#$Ultimate##0 ~n := #in~n; 492704#L25 assume !(~n <= 0); 492196#L26 call #t~ret0 := fact(~n - 1);< 492702#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492285#factFINAL assume true; 491927#factEXIT >#76#return; 492031#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492342#$Ultimate##0 ~n := #in~n; 492664#L25 assume !(~n <= 0); 492249#L26 call #t~ret0 := fact(~n - 1);< 492330#$Ultimate##0 ~n := #in~n; 492654#L25 assume ~n <= 0;#res := 1; 492659#factFINAL assume true; 492323#factEXIT >#66#return; 492299#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492260#factFINAL assume true; 492213#factEXIT >#78#return; 492227#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 493202#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 493200#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 493198#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 493197#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492157#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 492181#$Ultimate##0 ~n := #in~n; 493242#L25 assume !(~n <= 0); 490803#L26 call #t~ret0 := fact(~n - 1);< 490802#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492243#factFINAL assume true; 492185#factEXIT >#66#return; 492210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492693#factFINAL assume true; 492675#factEXIT >#66#return; 492674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492332#factFINAL assume true; 492263#factEXIT >#74#return; 491963#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490812#$Ultimate##0 ~n := #in~n; 492655#L25 assume !(~n <= 0); 492188#L26 call #t~ret0 := fact(~n - 1);< 492287#$Ultimate##0 ~n := #in~n; 492704#L25 assume !(~n <= 0); 492196#L26 call #t~ret0 := fact(~n - 1);< 492702#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492285#factFINAL assume true; 491927#factEXIT >#76#return; 491978#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492342#$Ultimate##0 ~n := #in~n; 492664#L25 assume !(~n <= 0); 492249#L26 call #t~ret0 := fact(~n - 1);< 492330#$Ultimate##0 ~n := #in~n; 492748#L25 assume !(~n <= 0); 492626#L26 call #t~ret0 := fact(~n - 1);< 492628#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492285#factFINAL assume true; 491927#factEXIT >#78#return; 492065#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 492703#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 492692#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 492691#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 492690#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 492124#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 490721#$Ultimate##0 ~n := #in~n; 492956#L25 assume !(~n <= 0); 492303#L26 call #t~ret0 := fact(~n - 1);< 492353#$Ultimate##0 ~n := #in~n; 493269#L25 assume !(~n <= 0); 492305#L26 call #t~ret0 := fact(~n - 1);< 492694#$Ultimate##0 ~n := #in~n; 493273#L25 assume !(~n <= 0); 490804#L26 call #t~ret0 := fact(~n - 1);< 490802#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 490807#L25 assume !(~n <= 0); 492204#L26 call #t~ret0 := fact(~n - 1);< 492629#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492243#factFINAL assume true; 492185#factEXIT >#66#return; 492210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492693#factFINAL assume true; 492675#factEXIT >#66#return; 492676#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492396#factFINAL assume true; 492384#factEXIT >#66#return; 492388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 493267#factFINAL assume true; 492103#factEXIT >#74#return; 492013#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 490812#$Ultimate##0 ~n := #in~n; 492655#L25 assume !(~n <= 0); 492188#L26 call #t~ret0 := fact(~n - 1);< 492287#$Ultimate##0 ~n := #in~n; 492704#L25 assume !(~n <= 0); 492196#L26 call #t~ret0 := fact(~n - 1);< 492702#$Ultimate##0 ~n := #in~n; 493239#L25 assume !(~n <= 0); 492201#L26 call #t~ret0 := fact(~n - 1);< 492631#$Ultimate##0 ~n := #in~n; 492738#L25 assume !(~n <= 0); 492252#L26 call #t~ret0 := fact(~n - 1);< 492627#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492247#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492243#factFINAL assume true; 492185#factEXIT >#66#return; 492210#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492693#factFINAL assume true; 492675#factEXIT >#66#return; 492674#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492332#factFINAL assume true; 492263#factEXIT >#76#return; 492034#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 492261#$Ultimate##0 ~n := #in~n; 492662#L25 assume !(~n <= 0); 492191#L26 call #t~ret0 := fact(~n - 1);< 492298#$Ultimate##0 ~n := #in~n; 493239#L25 assume !(~n <= 0); 492201#L26 call #t~ret0 := fact(~n - 1);< 492631#$Ultimate##0 ~n := #in~n; 492740#L25 assume ~n <= 0;#res := 1; 492735#factFINAL assume true; 492625#factEXIT >#66#return; 492623#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492286#factFINAL assume true; 492248#factEXIT >#66#return; 492254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492285#factFINAL assume true; 491927#factEXIT >#78#return; 492071#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 492688#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 492687#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 492683#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 492681#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 490792#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 490719#$Ultimate##0 ~n := #in~n; 490785#L25 assume !(~n <= 0); 490793#L26 call #t~ret0 := fact(~n - 1);< 491902#$Ultimate##0 ~n := #in~n; 492705#L25 assume !(~n <= 0); 491878#L26 call #t~ret0 := fact(~n - 1);< 492096#$Ultimate##0 ~n := #in~n; 493268#L25 assume !(~n <= 0); 491883#L26 call #t~ret0 := fact(~n - 1);< 492147#$Ultimate##0 ~n := #in~n; 492177#L25 assume !(~n <= 0); 491882#L26 call #t~ret0 := fact(~n - 1);< 492173#$Ultimate##0 ~n := #in~n; 492177#L25 assume !(~n <= 0); 491882#L26 call #t~ret0 := fact(~n - 1);< 492173#$Ultimate##0 ~n := #in~n; 492176#L25 assume ~n <= 0;#res := 1; 492182#factFINAL assume true; 492171#factEXIT >#66#return; 492170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492165#factFINAL assume true; 491915#factEXIT >#66#return; 491922#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492163#factFINAL assume true; 492145#factEXIT >#66#return; 492142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492139#factFINAL assume true; 492085#factEXIT >#66#return; 492087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492093#factFINAL assume true; 492082#factEXIT >#66#return; 492083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492382#factFINAL assume true; 492283#factEXIT >#74#return; 491853#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 491859#$Ultimate##0 ~n := #in~n; 492081#L25 assume !(~n <= 0); 491916#L26 call #t~ret0 := fact(~n - 1);< 491923#$Ultimate##0 ~n := #in~n; 492099#L25 assume !(~n <= 0); 491921#L26 call #t~ret0 := fact(~n - 1);< 492097#$Ultimate##0 ~n := #in~n; 492176#L25 assume ~n <= 0;#res := 1; 492182#factFINAL assume true; 492171#factEXIT >#66#return; 492170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 492165#factFINAL assume true; 491915#factEXIT >#66#return; 491908#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 491857#factFINAL assume true; 491858#factEXIT >#76#return; 491904#L30-7 [2023-02-17 09:42:49,872 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:49,872 INFO L85 PathProgramCache]: Analyzing trace with hash 415938653, now seen corresponding path program 39 times [2023-02-17 09:42:49,872 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:49,872 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [3343571] [2023-02-17 09:42:49,872 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:49,872 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:49,891 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:49,891 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1698921094] [2023-02-17 09:42:49,891 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:49,891 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:49,892 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:49,896 INFO L229 MonitoredProcess]: Starting monitored process 227 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:49,898 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (227)] Waiting until timeout for monitored process [2023-02-17 09:42:50,607 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 10 check-sat command(s) [2023-02-17 09:42:50,607 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:50,611 INFO L263 TraceCheckSpWp]: Trace formula consists of 675 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:42:50,614 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:50,730 INFO L134 CoverageAnalysis]: Checked inductivity of 20307 backedges. 3268 proven. 1166 refuted. 0 times theorem prover too weak. 15873 trivial. 0 not checked. [2023-02-17 09:42:50,730 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:51,092 INFO L134 CoverageAnalysis]: Checked inductivity of 20307 backedges. 2436 proven. 1270 refuted. 0 times theorem prover too weak. 16601 trivial. 0 not checked. [2023-02-17 09:42:51,093 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:51,093 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [3343571] [2023-02-17 09:42:51,093 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:51,093 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1698921094] [2023-02-17 09:42:51,093 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1698921094] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:51,093 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:51,093 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 27] total 31 [2023-02-17 09:42:51,093 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1506030583] [2023-02-17 09:42:51,093 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:51,094 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:51,094 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:51,095 INFO L85 PathProgramCache]: Analyzing trace with hash 1839106285, now seen corresponding path program 33 times [2023-02-17 09:42:51,095 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:51,095 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [150731019] [2023-02-17 09:42:51,095 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:51,095 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:51,109 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:51,109 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [594979443] [2023-02-17 09:42:51,109 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:42:51,109 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:51,109 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:51,112 INFO L229 MonitoredProcess]: Starting monitored process 228 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:51,113 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (228)] Waiting until timeout for monitored process [2023-02-17 09:42:51,750 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 16 check-sat command(s) [2023-02-17 09:42:51,750 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:51,752 INFO L263 TraceCheckSpWp]: Trace formula consists of 341 conjuncts, 20 conjunts are in the unsatisfiable core [2023-02-17 09:42:51,754 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:51,806 INFO L134 CoverageAnalysis]: Checked inductivity of 11755 backedges. 1692 proven. 232 refuted. 0 times theorem prover too weak. 9831 trivial. 0 not checked. [2023-02-17 09:42:51,806 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:51,973 INFO L134 CoverageAnalysis]: Checked inductivity of 11755 backedges. 1692 proven. 245 refuted. 0 times theorem prover too weak. 9818 trivial. 0 not checked. [2023-02-17 09:42:51,973 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:51,973 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [150731019] [2023-02-17 09:42:51,973 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:51,973 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [594979443] [2023-02-17 09:42:51,973 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [594979443] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:51,973 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:51,973 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 18] total 23 [2023-02-17 09:42:51,974 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [487893807] [2023-02-17 09:42:51,974 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:51,974 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:51,974 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:51,974 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2023-02-17 09:42:51,975 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=82, Invalid=470, Unknown=0, NotChecked=0, Total=552 [2023-02-17 09:42:51,975 INFO L87 Difference]: Start difference. First operand 2698 states and 5255 transitions. cyclomatic complexity: 2584 Second operand has 24 states, 19 states have (on average 3.210526315789474) internal successors, (61), 23 states have internal predecessors, (61), 15 states have call successors, (25), 1 states have call predecessors, (25), 8 states have return successors, (28), 14 states have call predecessors, (28), 15 states have call successors, (28) [2023-02-17 09:42:52,730 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:52,731 INFO L93 Difference]: Finished difference Result 4006 states and 8657 transitions. [2023-02-17 09:42:52,731 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4006 states and 8657 transitions. [2023-02-17 09:42:52,757 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 1028 [2023-02-17 09:42:52,786 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4006 states to 3994 states and 8631 transitions. [2023-02-17 09:42:52,786 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 737 [2023-02-17 09:42:52,787 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 737 [2023-02-17 09:42:52,787 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3994 states and 8631 transitions. [2023-02-17 09:42:52,787 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:52,787 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3994 states and 8631 transitions. [2023-02-17 09:42:52,788 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3994 states and 8631 transitions. [2023-02-17 09:42:52,845 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3994 to 3479. [2023-02-17 09:42:52,849 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3479 states, 1987 states have (on average 1.0498238550578762) internal successors, (2086), 1978 states have internal predecessors, (2086), 1246 states have call successors, (1274), 337 states have call predecessors, (1274), 246 states have return successors, (4196), 1163 states have call predecessors, (4196), 1246 states have call successors, (4196) [2023-02-17 09:42:52,862 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3479 states to 3479 states and 7556 transitions. [2023-02-17 09:42:52,862 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3479 states and 7556 transitions. [2023-02-17 09:42:52,862 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2023-02-17 09:42:52,863 INFO L428 stractBuchiCegarLoop]: Abstraction has 3479 states and 7556 transitions. [2023-02-17 09:42:52,863 INFO L335 stractBuchiCegarLoop]: ======== Iteration 63 ============ [2023-02-17 09:42:52,863 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3479 states and 7556 transitions. [2023-02-17 09:42:52,872 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 806 [2023-02-17 09:42:52,873 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:52,873 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:52,878 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [106, 106, 69, 69, 69, 69, 37, 13, 12, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1] [2023-02-17 09:42:52,878 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [188, 188, 158, 158, 158, 158, 30, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1] [2023-02-17 09:42:52,878 INFO L748 eck$LassoCheckResult]: Stem: 503682#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 503616#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 503617#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 503637#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 503683#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 505441#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505439#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 505436#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 505437#$Ultimate##0 ~n := #in~n; 505446#L25 assume ~n <= 0;#res := 1; 505445#factFINAL assume true; 505435#factEXIT >#68#return; 503677#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 503678#$Ultimate##0 ~n := #in~n; 506306#L25 assume ~n <= 0;#res := 1; 506305#factFINAL assume true; 506304#factEXIT >#70#return; 503597#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 503598#$Ultimate##0 ~n := #in~n; 506438#L25 assume ~n <= 0;#res := 1; 506437#factFINAL assume true; 506436#factEXIT >#72#return; 506435#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 506433#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 506434#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 506477#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 506475#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 506410#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 506429#$Ultimate##0 ~n := #in~n; 506430#L25 assume !(~n <= 0); 506423#L26 call #t~ret0 := fact(~n - 1);< 506425#$Ultimate##0 ~n := #in~n; 506495#L25 assume ~n <= 0;#res := 1; 506492#factFINAL assume true; 506421#factEXIT >#66#return; 506418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506415#factFINAL assume true; 506409#factEXIT >#74#return; 506397#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 506399#$Ultimate##0 ~n := #in~n; 506493#L25 assume ~n <= 0;#res := 1; 506488#factFINAL assume true; 506396#factEXIT >#76#return; 506398#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 506467#$Ultimate##0 ~n := #in~n; 506490#L25 assume !(~n <= 0); 506422#L26 call #t~ret0 := fact(~n - 1);< 506425#$Ultimate##0 ~n := #in~n; 506495#L25 assume ~n <= 0;#res := 1; 506492#factFINAL assume true; 506421#factEXIT >#66#return; 506424#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506478#factFINAL assume true; 506466#factEXIT >#78#return; 506460#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 506432#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 506420#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 506416#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 506414#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 506411#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 506412#$Ultimate##0 ~n := #in~n; 506426#L25 assume !(~n <= 0); 506428#L26 call #t~ret0 := fact(~n - 1);< 506456#$Ultimate##0 ~n := #in~n; 506473#L25 assume !(~n <= 0); 506455#L26 call #t~ret0 := fact(~n - 1);< 506465#$Ultimate##0 ~n := #in~n; 506494#L25 assume ~n <= 0;#res := 1; 506489#factFINAL assume true; 506480#factEXIT >#66#return; 506479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506468#factFINAL assume true; 506461#factEXIT >#66#return; 506463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506485#factFINAL assume true; 506484#factEXIT >#74#return; 506471#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 506472#$Ultimate##0 ~n := #in~n; 506476#L25 assume ~n <= 0;#res := 1; 506474#factFINAL assume true; 506470#factEXIT >#76#return; 506442#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 506443#$Ultimate##0 ~n := #in~n; 506483#L25 assume !(~n <= 0); 506462#L26 call #t~ret0 := fact(~n - 1);< 506469#$Ultimate##0 ~n := #in~n; 506486#L25 assume !(~n <= 0); 506481#L26 call #t~ret0 := fact(~n - 1);< 506482#$Ultimate##0 ~n := #in~n; 506494#L25 assume ~n <= 0;#res := 1; 506489#factFINAL assume true; 506480#factEXIT >#66#return; 506479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506468#factFINAL assume true; 506461#factEXIT >#66#return; 506464#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506487#factFINAL assume true; 506441#factEXIT >#78#return; 506439#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 506440#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 506457#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 506453#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 506451#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 506427#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 506412#$Ultimate##0 ~n := #in~n; 506426#L25 assume !(~n <= 0); 506428#L26 call #t~ret0 := fact(~n - 1);< 506456#$Ultimate##0 ~n := #in~n; 506473#L25 assume !(~n <= 0); 506455#L26 call #t~ret0 := fact(~n - 1);< 506465#$Ultimate##0 ~n := #in~n; 506473#L25 assume !(~n <= 0); 506455#L26 call #t~ret0 := fact(~n - 1);< 506465#$Ultimate##0 ~n := #in~n; 506494#L25 assume ~n <= 0;#res := 1; 506489#factFINAL assume true; 506480#factEXIT >#66#return; 506479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506468#factFINAL assume true; 506461#factEXIT >#66#return; 506459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506458#factFINAL assume true; 506454#factEXIT >#66#return; 506452#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506450#factFINAL assume true; 506448#factEXIT >#74#return; 506445#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 506446#$Ultimate##0 ~n := #in~n; 506449#L25 assume ~n <= 0;#res := 1; 506447#factFINAL assume true; 506444#factEXIT >#76#return; 503686#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 503687#$Ultimate##0 ~n := #in~n; 506588#L25 assume !(~n <= 0); 506582#L26 call #t~ret0 := fact(~n - 1);< 506587#$Ultimate##0 ~n := #in~n; 506602#L25 assume !(~n <= 0); 506585#L26 call #t~ret0 := fact(~n - 1);< 506592#$Ultimate##0 ~n := #in~n; 506604#L25 assume !(~n <= 0); 506583#L26 call #t~ret0 := fact(~n - 1);< 506600#$Ultimate##0 ~n := #in~n; 506603#L25 assume ~n <= 0;#res := 1; 506601#factFINAL assume true; 506599#factEXIT >#66#return; 506598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506597#factFINAL assume true; 506595#factEXIT >#66#return; 506596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506589#factFINAL assume true; 506590#factEXIT >#66#return; 506580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506579#factFINAL assume true; 506578#factEXIT >#78#return; 503620#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 503621#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 503639#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 506608#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 506607#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 506591#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 506606#$Ultimate##0 ~n := #in~n; 506605#L25 assume !(~n <= 0); 506584#L26 call #t~ret0 := fact(~n - 1);< 506592#$Ultimate##0 ~n := #in~n; 506604#L25 assume !(~n <= 0); 506583#L26 call #t~ret0 := fact(~n - 1);< 506600#$Ultimate##0 ~n := #in~n; 506604#L25 assume !(~n <= 0); 506583#L26 call #t~ret0 := fact(~n - 1);< 506600#$Ultimate##0 ~n := #in~n; 506604#L25 assume !(~n <= 0); 506583#L26 call #t~ret0 := fact(~n - 1);< 506600#$Ultimate##0 ~n := #in~n; 506603#L25 assume ~n <= 0;#res := 1; 506601#factFINAL assume true; 506599#factEXIT >#66#return; 506598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506597#factFINAL assume true; 506595#factEXIT >#66#return; 506596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506589#factFINAL assume true; 506590#factEXIT >#66#return; 506593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506594#factFINAL assume true; 506581#factEXIT >#66#return; 506586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506872#factFINAL assume true; 506869#factEXIT >#74#return; 506865#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 506866#$Ultimate##0 ~n := #in~n; 506934#L25 assume ~n <= 0;#res := 1; 506932#factFINAL assume true; 506864#factEXIT >#76#return; 503612#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 506772#$Ultimate##0 ~n := #in~n; 506771#L25 assume !(~n <= 0); 506672#L26 call #t~ret0 := fact(~n - 1);< 506770#$Ultimate##0 ~n := #in~n; 506902#L25 assume !(~n <= 0); 506669#L26 call #t~ret0 := fact(~n - 1);< 506775#$Ultimate##0 ~n := #in~n; 506918#L25 assume !(~n <= 0); 506667#L26 call #t~ret0 := fact(~n - 1);< 506898#$Ultimate##0 ~n := #in~n; 506928#L25 assume ~n <= 0;#res := 1; 506927#factFINAL assume true; 506897#factEXIT >#66#return; 506895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506894#factFINAL assume true; 506781#factEXIT >#66#return; 506780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506777#factFINAL assume true; 506774#factEXIT >#66#return; 503645#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503611#factFINAL assume true; 503613#factEXIT >#78#return; 504129#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 504130#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 504125#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 504126#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 506991#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504034#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504035#$Ultimate##0 ~n := #in~n; 504057#L25 assume !(~n <= 0); 504045#L26 call #t~ret0 := fact(~n - 1);< 504046#$Ultimate##0 ~n := #in~n; 504056#L25 assume !(~n <= 0); 504054#L26 call #t~ret0 := fact(~n - 1);< 504055#$Ultimate##0 ~n := #in~n; 504071#L25 assume !(~n <= 0); 504067#L26 call #t~ret0 := fact(~n - 1);< 504069#$Ultimate##0 ~n := #in~n; 504083#L25 assume !(~n <= 0); 504068#L26 call #t~ret0 := fact(~n - 1);< 504081#$Ultimate##0 ~n := #in~n; 504083#L25 assume !(~n <= 0); 504068#L26 call #t~ret0 := fact(~n - 1);< 504081#$Ultimate##0 ~n := #in~n; 504094#L25 assume ~n <= 0;#res := 1; 504092#factFINAL assume true; 504091#factEXIT >#66#return; 504089#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504087#factFINAL assume true; 504080#factEXIT >#66#return; 504076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504074#factFINAL assume true; 504066#factEXIT >#66#return; 504061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504059#factFINAL assume true; 504053#factEXIT >#66#return; 504052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504051#factFINAL assume true; 504044#factEXIT >#66#return; 504042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504040#factFINAL assume true; 504033#factEXIT >#74#return; 503935#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 503936#$Ultimate##0 ~n := #in~n; 504023#L25 assume ~n <= 0;#res := 1; 504022#factFINAL assume true; 503934#factEXIT >#76#return; 503867#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 503932#$Ultimate##0 ~n := #in~n; 503928#L25 assume !(~n <= 0); 503891#L26 call #t~ret0 := fact(~n - 1);< 503923#$Ultimate##0 ~n := #in~n; 503998#L25 assume !(~n <= 0); 503888#L26 call #t~ret0 := fact(~n - 1);< 503963#$Ultimate##0 ~n := #in~n; 504031#L25 assume !(~n <= 0); 503885#L26 call #t~ret0 := fact(~n - 1);< 503983#$Ultimate##0 ~n := #in~n; 504015#L25 assume !(~n <= 0); 503894#L26 call #t~ret0 := fact(~n - 1);< 503997#$Ultimate##0 ~n := #in~n; 504003#L25 assume !(~n <= 0); 503893#L26 call #t~ret0 := fact(~n - 1);< 504002#$Ultimate##0 ~n := #in~n; 504005#L25 assume ~n <= 0;#res := 1; 504004#factFINAL assume true; 504001#factEXIT >#66#return; 504000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503999#factFINAL assume true; 503996#factEXIT >#66#return; 503994#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503989#factFINAL assume true; 503982#factEXIT >#66#return; 503980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503978#factFINAL assume true; 503962#factEXIT >#66#return; 503961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503943#factFINAL assume true; 503922#factEXIT >#66#return; 503899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504123#factFINAL assume true; 503866#factEXIT >#78#return; 503865#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 503862#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 503858#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 503856#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 503854#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 503853#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 503852#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 503850#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 503843#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 503847#$Ultimate##0 ~n := #in~n; 503863#L25 assume !(~n <= 0); 503860#L26 call #t~ret0 := fact(~n - 1);< 503861#$Ultimate##0 ~n := #in~n; 503926#L25 assume ~n <= 0;#res := 1; 503924#factFINAL assume true; 503859#factEXIT >#66#return; 503857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503855#factFINAL assume true; 503846#factEXIT >#68#return; 503823#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 503845#$Ultimate##0 ~n := #in~n; 503925#L25 assume ~n <= 0;#res := 1; 503864#factFINAL assume true; 503822#factEXIT >#70#return; 503813#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 503816#$Ultimate##0 ~n := #in~n; 503815#L25 assume !(~n <= 0); 503727#L26 call #t~ret0 := fact(~n - 1);< 503814#$Ultimate##0 ~n := #in~n; 503848#L25 assume ~n <= 0;#res := 1; 503812#factFINAL assume true; 503744#factEXIT >#66#return; 503745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505433#factFINAL assume true; 505431#factEXIT >#72#return; 505429#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 505428#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 505426#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 505420#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505411#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 505372#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 505409#$Ultimate##0 ~n := #in~n; 505424#L25 assume !(~n <= 0); 504731#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505408#factFINAL assume true; 505319#factEXIT >#68#return; 505375#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 505406#$Ultimate##0 ~n := #in~n; 505425#L25 assume !(~n <= 0); 505415#L26 call #t~ret0 := fact(~n - 1);< 505419#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505408#factFINAL assume true; 505319#factEXIT >#70#return; 505151#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505316#$Ultimate##0 ~n := #in~n; 505407#L25 assume ~n <= 0;#res := 1; 505317#factFINAL assume true; 505137#factEXIT >#72#return; 505136#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 505129#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 505127#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 505125#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505124#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504436#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504615#$Ultimate##0 ~n := #in~n; 505442#L25 assume !(~n <= 0); 504745#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505778#factFINAL assume true; 504892#factEXIT >#74#return; 504915#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 504961#$Ultimate##0 ~n := #in~n; 505768#L25 assume !(~n <= 0); 505413#L26 call #t~ret0 := fact(~n - 1);< 505419#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505452#factFINAL assume true; 504938#factEXIT >#76#return; 504939#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 504961#$Ultimate##0 ~n := #in~n; 505768#L25 assume !(~n <= 0); 505413#L26 call #t~ret0 := fact(~n - 1);< 505419#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505452#factFINAL assume true; 504938#factEXIT >#78#return; 504956#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 505117#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 505115#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 505114#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505112#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504449#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504967#$Ultimate##0 ~n := #in~n; 505723#L25 assume !(~n <= 0); 504726#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504925#factFINAL assume true; 504404#factEXIT >#74#return; 504591#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 504961#$Ultimate##0 ~n := #in~n; 505768#L25 assume !(~n <= 0); 505413#L26 call #t~ret0 := fact(~n - 1);< 505419#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505452#factFINAL assume true; 504938#factEXIT >#76#return; 504898#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505007#$Ultimate##0 ~n := #in~n; 505590#L25 assume !(~n <= 0); 504879#L26 call #t~ret0 := fact(~n - 1);< 505754#$Ultimate##0 ~n := #in~n; 505765#L25 assume !(~n <= 0); 505758#L26 call #t~ret0 := fact(~n - 1);< 505762#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505778#factFINAL assume true; 504892#factEXIT >#78#return; 504924#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 504998#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 504995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 504978#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 504969#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504484#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504967#$Ultimate##0 ~n := #in~n; 505723#L25 assume !(~n <= 0); 504726#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504708#factFINAL assume true; 504705#factEXIT >#74#return; 504706#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 504961#$Ultimate##0 ~n := #in~n; 505768#L25 assume !(~n <= 0); 505413#L26 call #t~ret0 := fact(~n - 1);< 505419#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505452#factFINAL assume true; 504938#factEXIT >#76#return; 504494#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 504927#$Ultimate##0 ~n := #in~n; 505794#L25 assume !(~n <= 0); 504739#L26 call #t~ret0 := fact(~n - 1);< 504780#$Ultimate##0 ~n := #in~n; 505747#L25 assume !(~n <= 0); 504774#L26 call #t~ret0 := fact(~n - 1);< 504889#$Ultimate##0 ~n := #in~n; 505772#L25 assume !(~n <= 0); 504882#L26 call #t~ret0 := fact(~n - 1);< 505759#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504925#factFINAL assume true; 504404#factEXIT >#78#return; 504597#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 505135#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 505134#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 505132#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505131#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 503573#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 503574#$Ultimate##0 ~n := #in~n; 504398#L25 assume !(~n <= 0); 504343#L26 call #t~ret0 := fact(~n - 1);< 505541#$Ultimate##0 ~n := #in~n; 505542#L25 assume !(~n <= 0); 504329#L26 call #t~ret0 := fact(~n - 1);< 504371#$Ultimate##0 ~n := #in~n; 505641#L25 assume !(~n <= 0); 504337#L26 call #t~ret0 := fact(~n - 1);< 504381#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505531#L25 assume ~n <= 0;#res := 1; 505533#factFINAL assume true; 505524#factEXIT >#66#return; 505522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505506#factFINAL assume true; 505499#factEXIT >#66#return; 505497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504384#factFINAL assume true; 504376#factEXIT >#66#return; 504375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504370#factFINAL assume true; 504356#factEXIT >#66#return; 504365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505490#factFINAL assume true; 505486#factEXIT >#66#return; 505485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505483#factFINAL assume true; 505482#factEXIT >#74#return; 503623#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 503680#$Ultimate##0 ~n := #in~n; 505642#L25 assume !(~n <= 0); 503622#L26 call #t~ret0 := fact(~n - 1);< 503627#$Ultimate##0 ~n := #in~n; 505568#L25 assume ~n <= 0;#res := 1; 505567#factFINAL assume true; 505566#factEXIT >#66#return; 505564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505562#factFINAL assume true; 505560#factEXIT >#76#return; 504317#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505516#$Ultimate##0 ~n := #in~n; 505514#L25 assume !(~n <= 0); 504359#L26 call #t~ret0 := fact(~n - 1);< 505513#$Ultimate##0 ~n := #in~n; 505511#L25 assume !(~n <= 0); 504377#L26 call #t~ret0 := fact(~n - 1);< 504382#$Ultimate##0 ~n := #in~n; 505515#L25 assume !(~n <= 0); 505500#L26 call #t~ret0 := fact(~n - 1);< 505503#$Ultimate##0 ~n := #in~n; 505530#L25 assume !(~n <= 0); 505525#L26 call #t~ret0 := fact(~n - 1);< 505529#$Ultimate##0 ~n := #in~n; 505531#L25 assume ~n <= 0;#res := 1; 505533#factFINAL assume true; 505524#factEXIT >#66#return; 505522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505506#factFINAL assume true; 505499#factEXIT >#66#return; 505497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504384#factFINAL assume true; 504376#factEXIT >#66#return; 504375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504370#factFINAL assume true; 504356#factEXIT >#66#return; 504353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504349#factFINAL assume true; 504315#factEXIT >#78#return; 504327#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 505745#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 505744#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 505743#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 505742#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 505741#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 505740#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505739#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 503586#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504197#$Ultimate##0 ~n := #in~n; 504164#L25 assume !(~n <= 0); 504144#L26 call #t~ret0 := fact(~n - 1);< 504191#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 504199#L25 assume ~n <= 0;#res := 1; 504198#factFINAL assume true; 504194#factEXIT >#66#return; 504192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504190#factFINAL assume true; 504187#factEXIT >#66#return; 504186#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504182#factFINAL assume true; 504180#factEXIT >#66#return; 504179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504177#factFINAL assume true; 504174#factEXIT >#66#return; 504172#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504170#factFINAL assume true; 504166#factEXIT >#66#return; 504158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504157#factFINAL assume true; 504154#factEXIT >#66#return; 504153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504150#factFINAL assume true; 504138#factEXIT >#66#return; 504148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506333#factFINAL assume true; 506330#factEXIT >#66#return; 503643#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503644#factFINAL assume true; 503577#factEXIT >#68#return; 503589#L30-1 [2023-02-17 09:42:52,879 INFO L750 eck$LassoCheckResult]: Loop: 503589#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 503847#$Ultimate##0 ~n := #in~n; 503863#L25 assume ~n <= 0;#res := 1; 503864#factFINAL assume true; 503822#factEXIT >#70#return; 503701#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 503740#$Ultimate##0 ~n := #in~n; 503741#L25 assume !(~n <= 0); 503732#L26 call #t~ret0 := fact(~n - 1);< 503738#$Ultimate##0 ~n := #in~n; 503760#L25 assume !(~n <= 0); 503711#L26 call #t~ret0 := fact(~n - 1);< 503733#$Ultimate##0 ~n := #in~n; 503737#L25 assume !(~n <= 0); 503708#L26 call #t~ret0 := fact(~n - 1);< 503753#$Ultimate##0 ~n := #in~n; 503817#L25 assume !(~n <= 0); 503712#L26 call #t~ret0 := fact(~n - 1);< 503735#$Ultimate##0 ~n := #in~n; 503734#L25 assume !(~n <= 0); 503714#L26 call #t~ret0 := fact(~n - 1);< 503780#$Ultimate##0 ~n := #in~n; 503820#L25 assume !(~n <= 0); 503709#L26 call #t~ret0 := fact(~n - 1);< 503797#$Ultimate##0 ~n := #in~n; 504122#L25 assume !(~n <= 0); 503713#L26 call #t~ret0 := fact(~n - 1);< 503809#$Ultimate##0 ~n := #in~n; 504119#L25 assume !(~n <= 0); 503707#L26 call #t~ret0 := fact(~n - 1);< 504113#$Ultimate##0 ~n := #in~n; 504117#L25 assume ~n <= 0;#res := 1; 504116#factFINAL assume true; 504110#factEXIT >#66#return; 504105#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503722#factFINAL assume true; 503730#factEXIT >#66#return; 503805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503804#factFINAL assume true; 503795#factEXIT >#66#return; 503792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503785#factFINAL assume true; 503776#factEXIT >#66#return; 503773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503767#factFINAL assume true; 503762#factEXIT >#66#return; 503761#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503754#factFINAL assume true; 503748#factEXIT >#66#return; 503747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503746#factFINAL assume true; 503706#factEXIT >#66#return; 503715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505793#factFINAL assume true; 505791#factEXIT >#66#return; 505792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503700#factFINAL assume true; 503703#factEXIT >#72#return; 506614#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 507040#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 507041#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 507036#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 507037#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 505594#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 505605#$Ultimate##0 ~n := #in~n; 505604#L25 assume !(~n <= 0); 504790#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505603#factFINAL assume true; 505593#factEXIT >#68#return; 505376#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 505409#$Ultimate##0 ~n := #in~n; 505424#L25 assume !(~n <= 0); 504731#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505408#factFINAL assume true; 505319#factEXIT >#70#return; 505402#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505551#$Ultimate##0 ~n := #in~n; 505552#L25 assume !(~n <= 0); 504795#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504800#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505995#factFINAL assume true; 505939#factEXIT >#72#return; 505942#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 507034#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 507033#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 507032#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 507030#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 505595#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 505605#$Ultimate##0 ~n := #in~n; 505604#L25 assume !(~n <= 0); 504790#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505603#factFINAL assume true; 505593#factEXIT >#68#return; 505348#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 505409#$Ultimate##0 ~n := #in~n; 505424#L25 assume !(~n <= 0); 504731#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504885#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505646#factFINAL assume true; 505645#factEXIT >#70#return; 504992#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505006#$Ultimate##0 ~n := #in~n; 504997#L25 assume !(~n <= 0); 504792#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506046#factFINAL assume true; 505956#factEXIT >#72#return; 505945#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 507031#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 507029#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 507024#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 507023#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 505597#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 505605#$Ultimate##0 ~n := #in~n; 505604#L25 assume !(~n <= 0); 504790#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505603#factFINAL assume true; 505593#factEXIT >#68#return; 505320#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 505409#$Ultimate##0 ~n := #in~n; 505424#L25 assume !(~n <= 0); 504731#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505652#factFINAL assume true; 505650#factEXIT >#70#return; 504990#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505006#$Ultimate##0 ~n := #in~n; 504997#L25 assume !(~n <= 0); 504792#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506046#factFINAL assume true; 505956#factEXIT >#72#return; 505306#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 503646#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 503647#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 503674#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 503675#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 505596#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 505605#$Ultimate##0 ~n := #in~n; 505604#L25 assume !(~n <= 0); 504790#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505603#factFINAL assume true; 505593#factEXIT >#68#return; 505335#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 505409#$Ultimate##0 ~n := #in~n; 505424#L25 assume !(~n <= 0); 504731#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 505003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505866#factFINAL assume true; 505861#factEXIT >#70#return; 505222#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505440#$Ultimate##0 ~n := #in~n; 505438#L25 assume ~n <= 0;#res := 1; 505317#factFINAL assume true; 505137#factEXIT >#72#return; 505295#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 505609#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 505608#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 505607#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505606#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 505450#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 505605#$Ultimate##0 ~n := #in~n; 505604#L25 assume !(~n <= 0); 504790#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505603#factFINAL assume true; 505593#factEXIT >#68#return; 505356#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 505409#$Ultimate##0 ~n := #in~n; 505424#L25 assume !(~n <= 0); 504731#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 505003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505866#factFINAL assume true; 505861#factEXIT >#70#return; 505220#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 505440#$Ultimate##0 ~n := #in~n; 505438#L25 assume ~n <= 0;#res := 1; 505317#factFINAL assume true; 505137#factEXIT >#72#return; 505294#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 505454#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 505453#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 505451#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 505449#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504756#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504763#$Ultimate##0 ~n := #in~n; 505718#L25 assume !(~n <= 0); 504786#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504767#factFINAL assume true; 504752#factEXIT >#74#return; 504681#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 504707#$Ultimate##0 ~n := #in~n; 505722#L25 assume !(~n <= 0); 504724#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505128#factFINAL assume true; 505126#factEXIT >#76#return; 504569#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 504615#$Ultimate##0 ~n := #in~n; 505442#L25 assume !(~n <= 0); 504745#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505427#L25 assume ~n <= 0;#res := 1; 505421#factFINAL assume true; 505412#factEXIT >#66#return; 505416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505452#factFINAL assume true; 504938#factEXIT >#78#return; 504948#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 504936#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 504935#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 504934#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 504933#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504761#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504763#$Ultimate##0 ~n := #in~n; 505718#L25 assume !(~n <= 0); 504786#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504767#factFINAL assume true; 504752#factEXIT >#74#return; 504633#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 504707#$Ultimate##0 ~n := #in~n; 505722#L25 assume !(~n <= 0); 504724#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505128#factFINAL assume true; 505126#factEXIT >#76#return; 504414#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 504615#$Ultimate##0 ~n := #in~n; 505442#L25 assume !(~n <= 0); 504745#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505778#factFINAL assume true; 504892#factEXIT >#78#return; 504909#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 504891#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 504821#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 504783#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 504771#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504757#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504763#$Ultimate##0 ~n := #in~n; 505718#L25 assume !(~n <= 0); 504786#L26 call #t~ret0 := fact(~n - 1);< 504802#$Ultimate##0 ~n := #in~n; 505455#L25 assume !(~n <= 0); 504789#L26 call #t~ret0 := fact(~n - 1);< 504932#$Ultimate##0 ~n := #in~n; 505105#L25 assume !(~n <= 0); 504788#L26 call #t~ret0 := fact(~n - 1);< 504977#$Ultimate##0 ~n := #in~n; 505106#L25 assume !(~n <= 0); 504793#L26 call #t~ret0 := fact(~n - 1);< 504994#$Ultimate##0 ~n := #in~n; 505543#L25 assume !(~n <= 0); 504737#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504822#factFINAL assume true; 504784#factEXIT >#66#return; 504772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504767#factFINAL assume true; 504752#factEXIT >#74#return; 504693#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 504707#$Ultimate##0 ~n := #in~n; 505722#L25 assume !(~n <= 0); 504724#L26 call #t~ret0 := fact(~n - 1);< 504801#$Ultimate##0 ~n := #in~n; 505749#L25 assume !(~n <= 0); 504721#L26 call #t~ret0 := fact(~n - 1);< 504818#$Ultimate##0 ~n := #in~n; 505795#L25 assume !(~n <= 0); 504730#L26 call #t~ret0 := fact(~n - 1);< 504819#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504803#factFINAL assume true; 504773#factEXIT >#66#return; 504769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504764#factFINAL assume true; 504712#factEXIT >#66#return; 504747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505009#factFINAL assume true; 505000#factEXIT >#66#return; 504996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504979#factFINAL assume true; 504970#factEXIT >#66#return; 504968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504962#factFINAL assume true; 504928#factEXIT >#66#return; 504929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505128#factFINAL assume true; 505126#factEXIT >#76#return; 504405#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 504615#$Ultimate##0 ~n := #in~n; 505442#L25 assume !(~n <= 0); 504745#L26 call #t~ret0 := fact(~n - 1);< 505418#$Ultimate##0 ~n := #in~n; 505775#L25 assume !(~n <= 0); 504740#L26 call #t~ret0 := fact(~n - 1);< 505764#$Ultimate##0 ~n := #in~n; 505771#L25 assume ~n <= 0;#res := 1; 505770#factFINAL assume true; 505757#factEXIT >#66#return; 505755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505750#factFINAL assume true; 504877#factEXIT >#66#return; 504884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505778#factFINAL assume true; 504892#factEXIT >#78#return; 504397#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 504395#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 504393#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 504389#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 504354#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 504309#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 504311#$Ultimate##0 ~n := #in~n; 505443#L25 assume !(~n <= 0); 504334#L26 call #t~ret0 := fact(~n - 1);< 504348#$Ultimate##0 ~n := #in~n; 505510#L25 assume !(~n <= 0); 504341#L26 call #t~ret0 := fact(~n - 1);< 504352#$Ultimate##0 ~n := #in~n; 505498#L25 assume !(~n <= 0); 504336#L26 call #t~ret0 := fact(~n - 1);< 505495#$Ultimate##0 ~n := #in~n; 505492#L25 assume !(~n <= 0); 504342#L26 call #t~ret0 := fact(~n - 1);< 505491#$Ultimate##0 ~n := #in~n; 505540#L25 assume !(~n <= 0); 504339#L26 call #t~ret0 := fact(~n - 1);< 505570#$Ultimate##0 ~n := #in~n; 505558#L25 assume !(~n <= 0); 504335#L26 call #t~ret0 := fact(~n - 1);< 505555#$Ultimate##0 ~n := #in~n; 505550#L25 assume !(~n <= 0); 504338#L26 call #t~ret0 := fact(~n - 1);< 504381#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505531#L25 assume ~n <= 0;#res := 1; 505533#factFINAL assume true; 505524#factEXIT >#66#return; 505522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505506#factFINAL assume true; 505499#factEXIT >#66#return; 505497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504384#factFINAL assume true; 504376#factEXIT >#66#return; 504375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504370#factFINAL assume true; 504356#factEXIT >#66#return; 504365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505490#factFINAL assume true; 505486#factEXIT >#66#return; 505487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505521#factFINAL assume true; 505504#factEXIT >#66#return; 505496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504373#factFINAL assume true; 504368#factEXIT >#66#return; 504347#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504351#factFINAL assume true; 504328#factEXIT >#66#return; 504314#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504312#factFINAL assume true; 504307#factEXIT >#74#return; 504299#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 504306#$Ultimate##0 ~n := #in~n; 505573#L25 assume !(~n <= 0); 504330#L26 call #t~ret0 := fact(~n - 1);< 505569#$Ultimate##0 ~n := #in~n; 505558#L25 assume !(~n <= 0); 504335#L26 call #t~ret0 := fact(~n - 1);< 505555#$Ultimate##0 ~n := #in~n; 505550#L25 assume !(~n <= 0); 504338#L26 call #t~ret0 := fact(~n - 1);< 504381#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505531#L25 assume ~n <= 0;#res := 1; 505533#factFINAL assume true; 505524#factEXIT >#66#return; 505522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505506#factFINAL assume true; 505499#factEXIT >#66#return; 505497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504384#factFINAL assume true; 504376#factEXIT >#66#return; 504375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504370#factFINAL assume true; 504356#factEXIT >#66#return; 504365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505490#factFINAL assume true; 505486#factEXIT >#66#return; 505487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505521#factFINAL assume true; 505504#factEXIT >#66#return; 505496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504373#factFINAL assume true; 504368#factEXIT >#66#return; 504369#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505629#factFINAL assume true; 504214#factEXIT >#76#return; 504241#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 503685#$Ultimate##0 ~n := #in~n; 505630#L25 assume !(~n <= 0); 504344#L26 call #t~ret0 := fact(~n - 1);< 504367#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505532#L25 assume !(~n <= 0); 504333#L26 call #t~ret0 := fact(~n - 1);< 505528#$Ultimate##0 ~n := #in~n; 505531#L25 assume ~n <= 0;#res := 1; 505533#factFINAL assume true; 505524#factEXIT >#66#return; 505522#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 505506#factFINAL assume true; 505499#factEXIT >#66#return; 505497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504384#factFINAL assume true; 504376#factEXIT >#66#return; 504375#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504370#factFINAL assume true; 504356#factEXIT >#66#return; 504353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504349#factFINAL assume true; 504315#factEXIT >#78#return; 504212#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 504213#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 504208#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 504209#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 504203#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 504204#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 504183#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 504184#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 503587#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 503614#$Ultimate##0 ~n := #in~n; 504173#L25 assume !(~n <= 0); 504151#L26 call #t~ret0 := fact(~n - 1);< 504169#$Ultimate##0 ~n := #in~n; 504165#L25 assume !(~n <= 0); 504143#L26 call #t~ret0 := fact(~n - 1);< 504152#$Ultimate##0 ~n := #in~n; 504171#L25 assume !(~n <= 0); 504142#L26 call #t~ret0 := fact(~n - 1);< 504156#$Ultimate##0 ~n := #in~n; 504178#L25 assume !(~n <= 0); 504141#L26 call #t~ret0 := fact(~n - 1);< 504168#$Ultimate##0 ~n := #in~n; 504185#L25 assume !(~n <= 0); 504139#L26 call #t~ret0 := fact(~n - 1);< 504176#$Ultimate##0 ~n := #in~n; 504196#L25 assume !(~n <= 0); 504145#L26 call #t~ret0 := fact(~n - 1);< 504181#$Ultimate##0 ~n := #in~n; 504202#L25 assume !(~n <= 0); 504147#L26 call #t~ret0 := fact(~n - 1);< 504189#$Ultimate##0 ~n := #in~n; 503927#L25 assume !(~n <= 0); 504146#L26 call #t~ret0 := fact(~n - 1);< 504195#$Ultimate##0 ~n := #in~n; 504199#L25 assume ~n <= 0;#res := 1; 504198#factFINAL assume true; 504194#factEXIT >#66#return; 504192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504190#factFINAL assume true; 504187#factEXIT >#66#return; 504186#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504182#factFINAL assume true; 504180#factEXIT >#66#return; 504179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504177#factFINAL assume true; 504174#factEXIT >#66#return; 504172#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504170#factFINAL assume true; 504166#factEXIT >#66#return; 504158#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504157#factFINAL assume true; 504154#factEXIT >#66#return; 504153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 504150#factFINAL assume true; 504138#factEXIT >#66#return; 504148#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 506333#factFINAL assume true; 506330#factEXIT >#66#return; 503643#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 503644#factFINAL assume true; 503577#factEXIT >#68#return; 503589#L30-1 [2023-02-17 09:42:52,880 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:52,880 INFO L85 PathProgramCache]: Analyzing trace with hash 1130488792, now seen corresponding path program 40 times [2023-02-17 09:42:52,880 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:52,880 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1609977571] [2023-02-17 09:42:52,881 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:52,881 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:52,908 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:52,908 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [78586867] [2023-02-17 09:42:52,908 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:52,908 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:52,908 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:52,916 INFO L229 MonitoredProcess]: Starting monitored process 229 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:52,917 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (229)] Waiting until timeout for monitored process [2023-02-17 09:42:53,696 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:53,696 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:53,701 INFO L263 TraceCheckSpWp]: Trace formula consists of 1489 conjuncts, 19 conjunts are in the unsatisfiable core [2023-02-17 09:42:53,705 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:53,760 INFO L134 CoverageAnalysis]: Checked inductivity of 27403 backedges. 12420 proven. 24 refuted. 0 times theorem prover too weak. 14959 trivial. 0 not checked. [2023-02-17 09:42:53,761 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:53,899 INFO L134 CoverageAnalysis]: Checked inductivity of 27403 backedges. 728 proven. 1197 refuted. 0 times theorem prover too weak. 25478 trivial. 0 not checked. [2023-02-17 09:42:53,899 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:53,900 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1609977571] [2023-02-17 09:42:53,900 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:53,900 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [78586867] [2023-02-17 09:42:53,900 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [78586867] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:53,900 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:53,900 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 17] total 24 [2023-02-17 09:42:53,900 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [684927398] [2023-02-17 09:42:53,900 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:53,901 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:53,901 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:53,901 INFO L85 PathProgramCache]: Analyzing trace with hash -48812138, now seen corresponding path program 34 times [2023-02-17 09:42:53,901 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:53,901 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1958025108] [2023-02-17 09:42:53,901 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:53,902 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:53,923 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:53,923 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1437150187] [2023-02-17 09:42:53,923 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:42:53,923 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:53,924 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:53,927 INFO L229 MonitoredProcess]: Starting monitored process 230 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:53,927 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (230)] Waiting until timeout for monitored process [2023-02-17 09:42:54,781 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:42:54,782 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:54,790 INFO L263 TraceCheckSpWp]: Trace formula consists of 2414 conjuncts, 44 conjunts are in the unsatisfiable core [2023-02-17 09:42:54,796 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:54,942 INFO L134 CoverageAnalysis]: Checked inductivity of 95368 backedges. 37251 proven. 1276 refuted. 0 times theorem prover too weak. 56841 trivial. 0 not checked. [2023-02-17 09:42:54,942 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:55,473 INFO L134 CoverageAnalysis]: Checked inductivity of 95368 backedges. 1461 proven. 11465 refuted. 0 times theorem prover too weak. 82442 trivial. 0 not checked. [2023-02-17 09:42:55,474 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:55,474 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1958025108] [2023-02-17 09:42:55,474 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:55,474 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1437150187] [2023-02-17 09:42:55,474 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1437150187] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:55,474 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:55,474 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 35] total 42 [2023-02-17 09:42:55,474 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [36641246] [2023-02-17 09:42:55,474 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:55,475 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:55,475 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:55,475 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2023-02-17 09:42:55,475 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=446, Unknown=0, NotChecked=0, Total=552 [2023-02-17 09:42:55,476 INFO L87 Difference]: Start difference. First operand 3479 states and 7556 transitions. cyclomatic complexity: 4114 Second operand has 24 states, 22 states have (on average 4.045454545454546) internal successors, (89), 24 states have internal predecessors, (89), 16 states have call successors, (48), 2 states have call predecessors, (48), 6 states have return successors, (50), 15 states have call predecessors, (50), 16 states have call successors, (50) [2023-02-17 09:42:55,935 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:42:55,935 INFO L93 Difference]: Finished difference Result 3454 states and 7402 transitions. [2023-02-17 09:42:55,935 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3454 states and 7402 transitions. [2023-02-17 09:42:55,966 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 782 [2023-02-17 09:42:56,006 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3454 states to 3426 states and 7305 transitions. [2023-02-17 09:42:56,007 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 646 [2023-02-17 09:42:56,007 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 671 [2023-02-17 09:42:56,008 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3426 states and 7305 transitions. [2023-02-17 09:42:56,008 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:42:56,008 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3426 states and 7305 transitions. [2023-02-17 09:42:56,009 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3426 states and 7305 transitions. [2023-02-17 09:42:56,062 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3426 to 3408. [2023-02-17 09:42:56,065 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3408 states, 1962 states have (on average 1.045361875637105) internal successors, (2051), 1948 states have internal predecessors, (2051), 1200 states have call successors, (1228), 337 states have call predecessors, (1228), 246 states have return successors, (3985), 1122 states have call predecessors, (3985), 1200 states have call successors, (3985) [2023-02-17 09:42:56,077 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3408 states to 3408 states and 7264 transitions. [2023-02-17 09:42:56,078 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3408 states and 7264 transitions. [2023-02-17 09:42:56,078 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 24 states. [2023-02-17 09:42:56,078 INFO L428 stractBuchiCegarLoop]: Abstraction has 3408 states and 7264 transitions. [2023-02-17 09:42:56,078 INFO L335 stractBuchiCegarLoop]: ======== Iteration 64 ============ [2023-02-17 09:42:56,078 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3408 states and 7264 transitions. [2023-02-17 09:42:56,168 INFO L131 ngComponentsAnalysis]: Automaton has 6 accepting balls. 782 [2023-02-17 09:42:56,168 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:42:56,168 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:42:56,171 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [107, 107, 70, 70, 70, 70, 37, 13, 12, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1] [2023-02-17 09:42:56,171 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [185, 185, 155, 155, 155, 155, 30, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1] [2023-02-17 09:42:56,172 INFO L748 eck$LassoCheckResult]: Stem: 521631#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 521566#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 521567#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 521590#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 521632#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 522410#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522400#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522395#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522396#$Ultimate##0 ~n := #in~n; 522398#L25 assume ~n <= 0;#res := 1; 522397#factFINAL assume true; 522394#factEXIT >#68#return; 522391#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522392#$Ultimate##0 ~n := #in~n; 522404#L25 assume ~n <= 0;#res := 1; 522402#factFINAL assume true; 522390#factEXIT >#70#return; 522385#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522386#$Ultimate##0 ~n := #in~n; 522389#L25 assume ~n <= 0;#res := 1; 522387#factFINAL assume true; 522384#factEXIT >#72#return; 522382#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522379#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 522377#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522376#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522353#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522295#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522296#$Ultimate##0 ~n := #in~n; 522325#L25 assume !(~n <= 0); 522321#L26 call #t~ret0 := fact(~n - 1);< 522323#$Ultimate##0 ~n := #in~n; 522328#L25 assume ~n <= 0;#res := 1; 522326#factFINAL assume true; 522319#factEXIT >#66#return; 522315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522313#factFINAL assume true; 522294#factEXIT >#74#return; 522292#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522293#$Ultimate##0 ~n := #in~n; 522331#L25 assume ~n <= 0;#res := 1; 522330#factFINAL assume true; 522291#factEXIT >#76#return; 522289#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522290#$Ultimate##0 ~n := #in~n; 522327#L25 assume !(~n <= 0); 522320#L26 call #t~ret0 := fact(~n - 1);< 522323#$Ultimate##0 ~n := #in~n; 522328#L25 assume ~n <= 0;#res := 1; 522326#factFINAL assume true; 522319#factEXIT >#66#return; 522322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522333#factFINAL assume true; 522288#factEXIT >#78#return; 522286#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522285#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 522283#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522282#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522280#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522238#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522240#$Ultimate##0 ~n := #in~n; 522278#L25 assume !(~n <= 0); 522261#L26 call #t~ret0 := fact(~n - 1);< 522277#$Ultimate##0 ~n := #in~n; 522284#L25 assume !(~n <= 0); 522263#L26 call #t~ret0 := fact(~n - 1);< 522281#$Ultimate##0 ~n := #in~n; 522345#L25 assume ~n <= 0;#res := 1; 522344#factFINAL assume true; 522340#factEXIT >#66#return; 522339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522337#factFINAL assume true; 522260#factEXIT >#66#return; 522265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522381#factFINAL assume true; 522351#factEXIT >#74#return; 522348#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522349#$Ultimate##0 ~n := #in~n; 522352#L25 assume ~n <= 0;#res := 1; 522350#factFINAL assume true; 522347#factEXIT >#76#return; 522254#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522255#$Ultimate##0 ~n := #in~n; 522270#L25 assume !(~n <= 0); 522262#L26 call #t~ret0 := fact(~n - 1);< 522266#$Ultimate##0 ~n := #in~n; 522343#L25 assume !(~n <= 0); 522341#L26 call #t~ret0 := fact(~n - 1);< 522342#$Ultimate##0 ~n := #in~n; 522345#L25 assume ~n <= 0;#res := 1; 522344#factFINAL assume true; 522340#factEXIT >#66#return; 522339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522337#factFINAL assume true; 522260#factEXIT >#66#return; 522258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522256#factFINAL assume true; 522253#factEXIT >#78#return; 522249#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522247#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 522245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522244#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522242#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522239#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522240#$Ultimate##0 ~n := #in~n; 522278#L25 assume !(~n <= 0); 522261#L26 call #t~ret0 := fact(~n - 1);< 522277#$Ultimate##0 ~n := #in~n; 522284#L25 assume !(~n <= 0); 522263#L26 call #t~ret0 := fact(~n - 1);< 522281#$Ultimate##0 ~n := #in~n; 522284#L25 assume !(~n <= 0); 522263#L26 call #t~ret0 := fact(~n - 1);< 522281#$Ultimate##0 ~n := #in~n; 522345#L25 assume ~n <= 0;#res := 1; 522344#factFINAL assume true; 522340#factEXIT >#66#return; 522339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522337#factFINAL assume true; 522260#factEXIT >#66#return; 522264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522279#factFINAL assume true; 522276#factEXIT >#66#return; 522275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522274#factFINAL assume true; 522237#factEXIT >#74#return; 522206#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522207#$Ultimate##0 ~n := #in~n; 522233#L25 assume ~n <= 0;#res := 1; 522232#factFINAL assume true; 522205#factEXIT >#76#return; 522182#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522183#$Ultimate##0 ~n := #in~n; 522191#L25 assume !(~n <= 0); 522171#L26 call #t~ret0 := fact(~n - 1);< 522188#$Ultimate##0 ~n := #in~n; 522310#L25 assume !(~n <= 0); 522170#L26 call #t~ret0 := fact(~n - 1);< 522175#$Ultimate##0 ~n := #in~n; 522336#L25 assume !(~n <= 0); 522172#L26 call #t~ret0 := fact(~n - 1);< 522273#$Ultimate##0 ~n := #in~n; 522335#L25 assume ~n <= 0;#res := 1; 522334#factFINAL assume true; 522272#factEXIT >#66#return; 522236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522235#factFINAL assume true; 522234#factEXIT >#66#return; 522201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522200#factFINAL assume true; 522194#factEXIT >#66#return; 522174#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522231#factFINAL assume true; 522181#factEXIT >#78#return; 522180#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522178#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 522176#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522168#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522166#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522162#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522163#$Ultimate##0 ~n := #in~n; 522190#L25 assume !(~n <= 0); 522173#L26 call #t~ret0 := fact(~n - 1);< 522175#$Ultimate##0 ~n := #in~n; 522336#L25 assume !(~n <= 0); 522172#L26 call #t~ret0 := fact(~n - 1);< 522273#$Ultimate##0 ~n := #in~n; 522336#L25 assume !(~n <= 0); 522172#L26 call #t~ret0 := fact(~n - 1);< 522273#$Ultimate##0 ~n := #in~n; 522336#L25 assume !(~n <= 0); 522172#L26 call #t~ret0 := fact(~n - 1);< 522273#$Ultimate##0 ~n := #in~n; 522335#L25 assume ~n <= 0;#res := 1; 522334#factFINAL assume true; 522272#factEXIT >#66#return; 522236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522235#factFINAL assume true; 522234#factEXIT >#66#return; 522201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522200#factFINAL assume true; 522194#factEXIT >#66#return; 522193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522187#factFINAL assume true; 522169#factEXIT >#66#return; 522167#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522165#factFINAL assume true; 522161#factEXIT >#74#return; 522154#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522155#$Ultimate##0 ~n := #in~n; 522164#L25 assume ~n <= 0;#res := 1; 522160#factFINAL assume true; 522153#factEXIT >#76#return; 522084#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522149#$Ultimate##0 ~n := #in~n; 522116#L25 assume !(~n <= 0); 522069#L26 call #t~ret0 := fact(~n - 1);< 522114#$Ultimate##0 ~n := #in~n; 522203#L25 assume !(~n <= 0); 522067#L26 call #t~ret0 := fact(~n - 1);< 522140#$Ultimate##0 ~n := #in~n; 522198#L25 assume !(~n <= 0); 522075#L26 call #t~ret0 := fact(~n - 1);< 522196#$Ultimate##0 ~n := #in~n; 522198#L25 assume !(~n <= 0); 522075#L26 call #t~ret0 := fact(~n - 1);< 522196#$Ultimate##0 ~n := #in~n; 522199#L25 assume ~n <= 0;#res := 1; 522197#factFINAL assume true; 522195#factEXIT >#66#return; 522192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522189#factFINAL assume true; 522150#factEXIT >#66#return; 522147#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522144#factFINAL assume true; 522139#factEXIT >#66#return; 522134#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522113#factFINAL assume true; 522110#factEXIT >#66#return; 522111#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522373#factFINAL assume true; 522083#factEXIT >#78#return; 521981#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 521970#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 521968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 521969#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522298#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 521800#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521801#$Ultimate##0 ~n := #in~n; 521811#L25 assume !(~n <= 0); 521808#L26 call #t~ret0 := fact(~n - 1);< 521809#$Ultimate##0 ~n := #in~n; 521833#L25 assume !(~n <= 0); 521818#L26 call #t~ret0 := fact(~n - 1);< 521819#$Ultimate##0 ~n := #in~n; 521832#L25 assume !(~n <= 0); 521829#L26 call #t~ret0 := fact(~n - 1);< 521831#$Ultimate##0 ~n := #in~n; 521851#L25 assume !(~n <= 0); 521830#L26 call #t~ret0 := fact(~n - 1);< 521845#$Ultimate##0 ~n := #in~n; 521851#L25 assume !(~n <= 0); 521830#L26 call #t~ret0 := fact(~n - 1);< 521845#$Ultimate##0 ~n := #in~n; 521871#L25 assume ~n <= 0;#res := 1; 521866#factFINAL assume true; 521864#factEXIT >#66#return; 521857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521850#factFINAL assume true; 521844#factEXIT >#66#return; 521839#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521835#factFINAL assume true; 521828#factEXIT >#66#return; 521827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521826#factFINAL assume true; 521817#factEXIT >#66#return; 521816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521810#factFINAL assume true; 521807#factEXIT >#66#return; 521806#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521803#factFINAL assume true; 521799#factEXIT >#74#return; 521796#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521797#$Ultimate##0 ~n := #in~n; 521802#L25 assume ~n <= 0;#res := 1; 521798#factFINAL assume true; 521795#factEXIT >#76#return; 521786#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 521793#$Ultimate##0 ~n := #in~n; 521789#L25 assume !(~n <= 0); 521753#L26 call #t~ret0 := fact(~n - 1);< 521784#$Ultimate##0 ~n := #in~n; 521964#L25 assume !(~n <= 0); 521748#L26 call #t~ret0 := fact(~n - 1);< 521792#$Ultimate##0 ~n := #in~n; 521965#L25 assume !(~n <= 0); 521746#L26 call #t~ret0 := fact(~n - 1);< 521882#$Ultimate##0 ~n := #in~n; 521945#L25 assume !(~n <= 0); 521756#L26 call #t~ret0 := fact(~n - 1);< 521899#$Ultimate##0 ~n := #in~n; 521946#L25 assume !(~n <= 0); 521755#L26 call #t~ret0 := fact(~n - 1);< 521932#$Ultimate##0 ~n := #in~n; 521948#L25 assume ~n <= 0;#res := 1; 521944#factFINAL assume true; 521931#factEXIT >#66#return; 521927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521915#factFINAL assume true; 521898#factEXIT >#66#return; 521890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521886#factFINAL assume true; 521881#factEXIT >#66#return; 521879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521875#factFINAL assume true; 521791#factEXIT >#66#return; 521788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521785#factFINAL assume true; 521783#factEXIT >#66#return; 521762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 521884#factFINAL assume true; 521794#factEXIT >#78#return; 521727#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 521726#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 521725#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 521724#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 521723#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 521722#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 521721#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 521720#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 521690#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521715#$Ultimate##0 ~n := #in~n; 521719#L25 assume !(~n <= 0); 522545#L26 call #t~ret0 := fact(~n - 1);< 522602#$Ultimate##0 ~n := #in~n; 524161#L25 assume ~n <= 0;#res := 1; 524159#factFINAL assume true; 524158#factEXIT >#66#return; 524157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524156#factFINAL assume true; 524155#factEXIT >#68#return; 521696#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521717#$Ultimate##0 ~n := #in~n; 521718#L25 assume ~n <= 0;#res := 1; 521716#factFINAL assume true; 521681#factEXIT >#70#return; 521709#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523513#$Ultimate##0 ~n := #in~n; 524175#L25 assume !(~n <= 0); 521647#L26 call #t~ret0 := fact(~n - 1);< 523582#$Ultimate##0 ~n := #in~n; 524766#L25 assume ~n <= 0;#res := 1; 521664#factFINAL assume true; 521665#factEXIT >#66#return; 523581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523580#factFINAL assume true; 523512#factEXIT >#72#return; 523490#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523489#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523488#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523487#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523485#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523464#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521623#$Ultimate##0 ~n := #in~n; 524177#L25 assume !(~n <= 0); 523052#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523565#factFINAL assume true; 523299#factEXIT >#68#return; 523304#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 523481#$Ultimate##0 ~n := #in~n; 524147#L25 assume !(~n <= 0); 523571#L26 call #t~ret0 := fact(~n - 1);< 523576#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523565#factFINAL assume true; 523299#factEXIT >#70#return; 523121#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523263#$Ultimate##0 ~n := #in~n; 523522#L25 assume ~n <= 0;#res := 1; 523265#factFINAL assume true; 523084#factEXIT >#72#return; 523083#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523082#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523081#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523079#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523077#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522781#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522911#$Ultimate##0 ~n := #in~n; 523578#L25 assume !(~n <= 0); 523055#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523027#factFINAL assume true; 522912#factEXIT >#74#return; 522943#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521629#$Ultimate##0 ~n := #in~n; 523579#L25 assume !(~n <= 0); 523572#L26 call #t~ret0 := fact(~n - 1);< 523576#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523567#factFINAL assume true; 523491#factEXIT >#76#return; 523493#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 521629#$Ultimate##0 ~n := #in~n; 523579#L25 assume !(~n <= 0); 523572#L26 call #t~ret0 := fact(~n - 1);< 523576#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523567#factFINAL assume true; 523491#factEXIT >#78#return; 523504#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523660#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 523658#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523656#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523644#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522836#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521521#$Ultimate##0 ~n := #in~n; 524716#L25 assume !(~n <= 0); 523048#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523558#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524176#factFINAL assume true; 522725#factEXIT >#74#return; 522892#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521629#$Ultimate##0 ~n := #in~n; 523579#L25 assume !(~n <= 0); 523572#L26 call #t~ret0 := fact(~n - 1);< 523576#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523567#factFINAL assume true; 523491#factEXIT >#76#return; 522917#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523566#$Ultimate##0 ~n := #in~n; 523298#L25 assume !(~n <= 0); 523059#L26 call #t~ret0 := fact(~n - 1);< 523075#$Ultimate##0 ~n := #in~n; 524109#L25 assume !(~n <= 0); 524082#L26 call #t~ret0 := fact(~n - 1);< 524088#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523027#factFINAL assume true; 522912#factEXIT >#78#return; 522936#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523586#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 523585#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523584#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523583#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522857#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521521#$Ultimate##0 ~n := #in~n; 524716#L25 assume !(~n <= 0); 523048#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523030#factFINAL assume true; 523009#factEXIT >#74#return; 523025#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521629#$Ultimate##0 ~n := #in~n; 523579#L25 assume !(~n <= 0); 523572#L26 call #t~ret0 := fact(~n - 1);< 523576#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523567#factFINAL assume true; 523491#factEXIT >#76#return; 522868#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523032#$Ultimate##0 ~n := #in~n; 524185#L25 assume !(~n <= 0); 523278#L26 call #t~ret0 := fact(~n - 1);< 523534#$Ultimate##0 ~n := #in~n; 524180#L25 assume !(~n <= 0); 523064#L26 call #t~ret0 := fact(~n - 1);< 523561#$Ultimate##0 ~n := #in~n; 524101#L25 assume !(~n <= 0); 523069#L26 call #t~ret0 := fact(~n - 1);< 524086#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523558#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524176#factFINAL assume true; 522725#factEXIT >#78#return; 522901#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523486#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 523484#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523483#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523482#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 521518#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521519#$Ultimate##0 ~n := #in~n; 521602#L25 assume !(~n <= 0); 521616#L26 call #t~ret0 := fact(~n - 1);< 524139#$Ultimate##0 ~n := #in~n; 524456#L25 assume !(~n <= 0); 522683#L26 call #t~ret0 := fact(~n - 1);< 524060#$Ultimate##0 ~n := #in~n; 524457#L25 assume !(~n <= 0); 522688#L26 call #t~ret0 := fact(~n - 1);< 524068#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524122#L25 assume ~n <= 0;#res := 1; 524121#factFINAL assume true; 524113#factEXIT >#66#return; 524110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524089#factFINAL assume true; 524074#factEXIT >#66#return; 524073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524070#factFINAL assume true; 524063#factEXIT >#66#return; 524061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524058#factFINAL assume true; 524043#factEXIT >#66#return; 524052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524146#factFINAL assume true; 524143#factEXIT >#66#return; 524144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524581#factFINAL assume true; 524207#factEXIT >#74#return; 521575#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521627#$Ultimate##0 ~n := #in~n; 524684#L25 assume !(~n <= 0); 521572#L26 call #t~ret0 := fact(~n - 1);< 521577#$Ultimate##0 ~n := #in~n; 524453#L25 assume ~n <= 0;#res := 1; 524451#factFINAL assume true; 524448#factEXIT >#66#return; 524446#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524444#factFINAL assume true; 524154#factEXIT >#76#return; 524028#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 524194#$Ultimate##0 ~n := #in~n; 524352#L25 assume !(~n <= 0); 524046#L26 call #t~ret0 := fact(~n - 1);< 524349#$Ultimate##0 ~n := #in~n; 524178#L25 assume !(~n <= 0); 524064#L26 call #t~ret0 := fact(~n - 1);< 524069#$Ultimate##0 ~n := #in~n; 524094#L25 assume !(~n <= 0); 524075#L26 call #t~ret0 := fact(~n - 1);< 524078#$Ultimate##0 ~n := #in~n; 524124#L25 assume !(~n <= 0); 524114#L26 call #t~ret0 := fact(~n - 1);< 524116#$Ultimate##0 ~n := #in~n; 524122#L25 assume ~n <= 0;#res := 1; 524121#factFINAL assume true; 524113#factEXIT >#66#return; 524110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524089#factFINAL assume true; 524074#factEXIT >#66#return; 524073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524070#factFINAL assume true; 524063#factEXIT >#66#return; 524061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524058#factFINAL assume true; 524043#factEXIT >#66#return; 524042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524040#factFINAL assume true; 524025#factEXIT >#78#return; 524036#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 524472#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 524471#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 524470#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 524469#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 524468#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 524467#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 524466#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 521553#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 521549#$Ultimate##0 ~n := #in~n; 522585#L25 assume !(~n <= 0); 522548#L26 call #t~ret0 := fact(~n - 1);< 522591#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522600#L25 assume ~n <= 0;#res := 1; 522598#factFINAL assume true; 522595#factEXIT >#66#return; 522593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522590#factFINAL assume true; 522587#factEXIT >#66#return; 522584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522583#factFINAL assume true; 522581#factEXIT >#66#return; 522580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522578#factFINAL assume true; 522576#factEXIT >#66#return; 522575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522573#factFINAL assume true; 522570#factEXIT >#66#return; 522568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522564#factFINAL assume true; 522561#factEXIT >#66#return; 522559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522560#factFINAL assume true; 522540#factEXIT >#66#return; 522551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522556#factFINAL assume true; 522557#factEXIT >#66#return; 522603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523965#factFINAL assume true; 523962#factEXIT >#68#return; 521685#L30-1 [2023-02-17 09:42:56,172 INFO L750 eck$LassoCheckResult]: Loop: 521685#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521715#$Ultimate##0 ~n := #in~n; 521719#L25 assume ~n <= 0;#res := 1; 521716#factFINAL assume true; 521681#factEXIT >#70#return; 521675#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523910#$Ultimate##0 ~n := #in~n; 524332#L25 assume !(~n <= 0); 524287#L26 call #t~ret0 := fact(~n - 1);< 524294#$Ultimate##0 ~n := #in~n; 524333#L25 assume !(~n <= 0); 524286#L26 call #t~ret0 := fact(~n - 1);< 524296#$Ultimate##0 ~n := #in~n; 524347#L25 assume !(~n <= 0); 524288#L26 call #t~ret0 := fact(~n - 1);< 524307#$Ultimate##0 ~n := #in~n; 524361#L25 assume !(~n <= 0); 524290#L26 call #t~ret0 := fact(~n - 1);< 524317#$Ultimate##0 ~n := #in~n; 524417#L25 assume !(~n <= 0); 524284#L26 call #t~ret0 := fact(~n - 1);< 524327#$Ultimate##0 ~n := #in~n; 524377#L25 assume !(~n <= 0); 524289#L26 call #t~ret0 := fact(~n - 1);< 524344#$Ultimate##0 ~n := #in~n; 524386#L25 assume !(~n <= 0); 524292#L26 call #t~ret0 := fact(~n - 1);< 524357#$Ultimate##0 ~n := #in~n; 524374#L25 assume !(~n <= 0); 524285#L26 call #t~ret0 := fact(~n - 1);< 524367#$Ultimate##0 ~n := #in~n; 524372#L25 assume ~n <= 0;#res := 1; 524375#factFINAL assume true; 524366#factEXIT >#66#return; 524365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524363#factFINAL assume true; 524353#factEXIT >#66#return; 524351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524350#factFINAL assume true; 524338#factEXIT >#66#return; 524337#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524334#factFINAL assume true; 524322#factEXIT >#66#return; 524321#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524319#factFINAL assume true; 524312#factEXIT >#66#return; 524311#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524309#factFINAL assume true; 524302#factEXIT >#66#return; 524301#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524299#factFINAL assume true; 524297#factEXIT >#66#return; 524293#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524295#factFINAL assume true; 524283#factEXIT >#66#return; 524282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524280#factFINAL assume true; 524278#factEXIT >#72#return; 524279#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 524277#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 524275#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 524273#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 524271#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523830#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 524268#$Ultimate##0 ~n := #in~n; 524187#L25 assume !(~n <= 0); 521618#L26 call #t~ret0 := fact(~n - 1);< 523852#$Ultimate##0 ~n := #in~n; 521617#L25 assume !(~n <= 0); 521619#L26 call #t~ret0 := fact(~n - 1);< 523865#$Ultimate##0 ~n := #in~n; 524769#L25 assume !(~n <= 0); 523847#L26 call #t~ret0 := fact(~n - 1);< 523892#$Ultimate##0 ~n := #in~n; 524235#L25 assume !(~n <= 0); 523846#L26 call #t~ret0 := fact(~n - 1);< 523903#$Ultimate##0 ~n := #in~n; 524238#L25 assume !(~n <= 0); 523844#L26 call #t~ret0 := fact(~n - 1);< 523920#$Ultimate##0 ~n := #in~n; 523933#L25 assume !(~n <= 0); 523843#L26 call #t~ret0 := fact(~n - 1);< 523886#$Ultimate##0 ~n := #in~n; 523952#L25 assume !(~n <= 0); 523849#L26 call #t~ret0 := fact(~n - 1);< 523931#$Ultimate##0 ~n := #in~n; 523953#L25 assume !(~n <= 0); 523848#L26 call #t~ret0 := fact(~n - 1);< 523939#$Ultimate##0 ~n := #in~n; 524243#L25 assume ~n <= 0;#res := 1; 524242#factFINAL assume true; 523938#factEXIT >#66#return; 523936#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523934#factFINAL assume true; 523929#factEXIT >#66#return; 523927#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523926#factFINAL assume true; 523925#factEXIT >#66#return; 523924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523923#factFINAL assume true; 523918#factEXIT >#66#return; 523917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523915#factFINAL assume true; 523901#factEXIT >#66#return; 523899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523897#factFINAL assume true; 523890#factEXIT >#66#return; 523888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523885#factFINAL assume true; 523873#factEXIT >#66#return; 523851#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523864#factFINAL assume true; 523842#factEXIT >#66#return; 523834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523832#factFINAL assume true; 523829#factEXIT >#68#return; 523796#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521621#$Ultimate##0 ~n := #in~n; 523828#L25 assume ~n <= 0;#res := 1; 523827#factFINAL assume true; 523786#factEXIT >#70#return; 523772#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523777#$Ultimate##0 ~n := #in~n; 523858#L25 assume !(~n <= 0); 523540#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523779#factFINAL assume true; 523768#factEXIT >#72#return; 523766#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523764#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523762#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523760#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523759#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523651#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523673#$Ultimate##0 ~n := #in~n; 523670#L25 assume !(~n <= 0); 523542#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523666#factFINAL assume true; 523645#factEXIT >#68#return; 523312#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521623#$Ultimate##0 ~n := #in~n; 524177#L25 assume !(~n <= 0); 523052#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523758#factFINAL assume true; 523755#factEXIT >#70#return; 523737#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523745#$Ultimate##0 ~n := #in~n; 523833#L25 assume !(~n <= 0); 523547#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523781#factFINAL assume true; 523718#factEXIT >#72#return; 523743#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523753#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523751#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523749#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523747#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523650#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523673#$Ultimate##0 ~n := #in~n; 523670#L25 assume !(~n <= 0); 523542#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523666#factFINAL assume true; 523645#factEXIT >#68#return; 523460#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521623#$Ultimate##0 ~n := #in~n; 524177#L25 assume !(~n <= 0); 523052#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524308#factFINAL assume true; 524196#factEXIT >#70#return; 523207#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523592#$Ultimate##0 ~n := #in~n; 523861#L25 assume !(~n <= 0); 523049#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523781#factFINAL assume true; 523718#factEXIT >#72#return; 523261#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523703#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523701#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523698#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523694#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523646#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523673#$Ultimate##0 ~n := #in~n; 523670#L25 assume !(~n <= 0); 523542#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523666#factFINAL assume true; 523645#factEXIT >#68#return; 523375#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521623#$Ultimate##0 ~n := #in~n; 524177#L25 assume !(~n <= 0); 523052#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524308#factFINAL assume true; 524196#factEXIT >#70#return; 523155#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523592#$Ultimate##0 ~n := #in~n; 523861#L25 assume !(~n <= 0); 523049#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523574#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523691#factFINAL assume true; 523682#factEXIT >#72#return; 523247#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523680#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523678#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523676#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523674#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523653#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523673#$Ultimate##0 ~n := #in~n; 523670#L25 assume !(~n <= 0); 523542#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523666#factFINAL assume true; 523645#factEXIT >#68#return; 523342#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 521623#$Ultimate##0 ~n := #in~n; 524177#L25 assume !(~n <= 0); 523052#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523285#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524308#factFINAL assume true; 524196#factEXIT >#70#return; 523129#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 523592#$Ultimate##0 ~n := #in~n; 523861#L25 assume ~n <= 0;#res := 1; 523265#factFINAL assume true; 523084#factEXIT >#72#return; 523233#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523667#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 523665#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523664#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523663#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523039#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523042#$Ultimate##0 ~n := #in~n; 524019#L25 assume !(~n <= 0); 523545#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523289#factFINAL assume true; 523033#factEXIT >#74#return; 522950#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 523026#$Ultimate##0 ~n := #in~n; 524106#L25 assume !(~n <= 0); 523274#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524626#factFINAL assume true; 522948#factEXIT >#76#return; 522769#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522911#$Ultimate##0 ~n := #in~n; 523578#L25 assume !(~n <= 0); 523055#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524103#L25 assume ~n <= 0;#res := 1; 524104#factFINAL assume true; 523570#factEXIT >#66#return; 523569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523567#factFINAL assume true; 523491#factEXIT >#78#return; 523511#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523662#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 523661#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523659#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523657#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523037#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523042#$Ultimate##0 ~n := #in~n; 524019#L25 assume !(~n <= 0); 523545#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523289#factFINAL assume true; 523033#factEXIT >#74#return; 522978#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 523026#$Ultimate##0 ~n := #in~n; 524106#L25 assume !(~n <= 0); 523274#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524626#factFINAL assume true; 522948#factEXIT >#76#return; 522762#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522911#$Ultimate##0 ~n := #in~n; 523578#L25 assume !(~n <= 0); 523055#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523027#factFINAL assume true; 522912#factEXIT >#78#return; 522939#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 523519#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 523517#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 523515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 523514#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 523036#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 523042#$Ultimate##0 ~n := #in~n; 524019#L25 assume !(~n <= 0); 523545#L26 call #t~ret0 := fact(~n - 1);< 523554#$Ultimate##0 ~n := #in~n; 523881#L25 assume !(~n <= 0); 523544#L26 call #t~ret0 := fact(~n - 1);< 523841#$Ultimate##0 ~n := #in~n; 523884#L25 assume !(~n <= 0); 523543#L26 call #t~ret0 := fact(~n - 1);< 523872#$Ultimate##0 ~n := #in~n; 523912#L25 assume !(~n <= 0); 523548#L26 call #t~ret0 := fact(~n - 1);< 523826#$Ultimate##0 ~n := #in~n; 524330#L25 assume !(~n <= 0); 523282#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523855#factFINAL assume true; 523837#factEXIT >#66#return; 523550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523964#factFINAL assume true; 523537#factEXIT >#66#return; 523535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523289#factFINAL assume true; 523033#factEXIT >#74#return; 522976#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 523026#$Ultimate##0 ~n := #in~n; 524106#L25 assume !(~n <= 0); 523274#L26 call #t~ret0 := fact(~n - 1);< 523555#$Ultimate##0 ~n := #in~n; 524329#L25 assume !(~n <= 0); 523267#L26 call #t~ret0 := fact(~n - 1);< 523668#$Ultimate##0 ~n := #in~n; 524188#L25 assume !(~n <= 0); 523067#L26 call #t~ret0 := fact(~n - 1);< 523287#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524015#factFINAL assume true; 523556#factEXIT >#66#return; 523536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523523#factFINAL assume true; 523266#factEXIT >#66#return; 523283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523875#factFINAL assume true; 523817#factEXIT >#66#return; 523820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523879#factFINAL assume true; 523868#factEXIT >#66#return; 523869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524626#factFINAL assume true; 522948#factEXIT >#76#return; 522889#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 522911#$Ultimate##0 ~n := #in~n; 523578#L25 assume !(~n <= 0); 523055#L26 call #t~ret0 := fact(~n - 1);< 523577#$Ultimate##0 ~n := #in~n; 524105#L25 assume !(~n <= 0); 523047#L26 call #t~ret0 := fact(~n - 1);< 524084#$Ultimate##0 ~n := #in~n; 524100#L25 assume ~n <= 0;#res := 1; 524099#factFINAL assume true; 524081#factEXIT >#66#return; 523564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523293#factFINAL assume true; 523045#factEXIT >#66#return; 523043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523027#factFINAL assume true; 522912#factEXIT >#78#return; 522724#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 522722#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 522716#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 522712#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522707#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522672#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522674#$Ultimate##0 ~n := #in~n; 524148#L25 assume !(~n <= 0); 522681#L26 call #t~ret0 := fact(~n - 1);< 522697#$Ultimate##0 ~n := #in~n; 524153#L25 assume !(~n <= 0); 522679#L26 call #t~ret0 := fact(~n - 1);< 522699#$Ultimate##0 ~n := #in~n; 524833#L25 assume !(~n <= 0); 522695#L26 call #t~ret0 := fact(~n - 1);< 522720#$Ultimate##0 ~n := #in~n; 524137#L25 assume !(~n <= 0); 522691#L26 call #t~ret0 := fact(~n - 1);< 524135#$Ultimate##0 ~n := #in~n; 524133#L25 assume !(~n <= 0); 522682#L26 call #t~ret0 := fact(~n - 1);< 524132#$Ultimate##0 ~n := #in~n; 524130#L25 assume !(~n <= 0); 522694#L26 call #t~ret0 := fact(~n - 1);< 524129#$Ultimate##0 ~n := #in~n; 524126#L25 assume !(~n <= 0); 522687#L26 call #t~ret0 := fact(~n - 1);< 524068#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524122#L25 assume ~n <= 0;#res := 1; 524121#factFINAL assume true; 524113#factEXIT >#66#return; 524110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524089#factFINAL assume true; 524074#factEXIT >#66#return; 524073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524070#factFINAL assume true; 524063#factEXIT >#66#return; 524061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524058#factFINAL assume true; 524043#factEXIT >#66#return; 524052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524146#factFINAL assume true; 524143#factEXIT >#66#return; 524141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524138#factFINAL assume true; 522718#factEXIT >#66#return; 522714#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522709#factFINAL assume true; 522703#factEXIT >#66#return; 522696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522698#factFINAL assume true; 522678#factEXIT >#66#return; 522677#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522675#factFINAL assume true; 522671#factEXIT >#74#return; 522645#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 522670#$Ultimate##0 ~n := #in~n; 524136#L25 assume !(~n <= 0); 522690#L26 call #t~ret0 := fact(~n - 1);< 524131#$Ultimate##0 ~n := #in~n; 524130#L25 assume !(~n <= 0); 522694#L26 call #t~ret0 := fact(~n - 1);< 524129#$Ultimate##0 ~n := #in~n; 524126#L25 assume !(~n <= 0); 522687#L26 call #t~ret0 := fact(~n - 1);< 524068#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524122#L25 assume ~n <= 0;#res := 1; 524121#factFINAL assume true; 524113#factEXIT >#66#return; 524110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524089#factFINAL assume true; 524074#factEXIT >#66#return; 524073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524070#factFINAL assume true; 524063#factEXIT >#66#return; 524061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524058#factFINAL assume true; 524043#factEXIT >#66#return; 524052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524146#factFINAL assume true; 524143#factEXIT >#66#return; 524141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524138#factFINAL assume true; 522718#factEXIT >#66#return; 522714#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522709#factFINAL assume true; 522703#factEXIT >#66#return; 522704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524236#factFINAL assume true; 522613#factEXIT >#76#return; 522665#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 521634#$Ultimate##0 ~n := #in~n; 524422#L25 assume !(~n <= 0); 522686#L26 call #t~ret0 := fact(~n - 1);< 524053#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524123#L25 assume !(~n <= 0); 522693#L26 call #t~ret0 := fact(~n - 1);< 524118#$Ultimate##0 ~n := #in~n; 524122#L25 assume ~n <= 0;#res := 1; 524121#factFINAL assume true; 524113#factEXIT >#66#return; 524110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524089#factFINAL assume true; 524074#factEXIT >#66#return; 524073#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524070#factFINAL assume true; 524063#factEXIT >#66#return; 524061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524058#factFINAL assume true; 524043#factEXIT >#66#return; 524042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 524040#factFINAL assume true; 524025#factEXIT >#78#return; 524024#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 524023#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 524022#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 524021#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 522607#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 522606#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 522605#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 522604#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 522554#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 522569#$Ultimate##0 ~n := #in~n; 522566#L25 assume !(~n <= 0); 522552#L26 call #t~ret0 := fact(~n - 1);< 522555#$Ultimate##0 ~n := #in~n; 522567#L25 assume !(~n <= 0); 522544#L26 call #t~ret0 := fact(~n - 1);< 522558#$Ultimate##0 ~n := #in~n; 522574#L25 assume !(~n <= 0); 522543#L26 call #t~ret0 := fact(~n - 1);< 522563#$Ultimate##0 ~n := #in~n; 522579#L25 assume !(~n <= 0); 522541#L26 call #t~ret0 := fact(~n - 1);< 522572#$Ultimate##0 ~n := #in~n; 522586#L25 assume !(~n <= 0); 522550#L26 call #t~ret0 := fact(~n - 1);< 522577#$Ultimate##0 ~n := #in~n; 522597#L25 assume !(~n <= 0); 522547#L26 call #t~ret0 := fact(~n - 1);< 522582#$Ultimate##0 ~n := #in~n; 522601#L25 assume !(~n <= 0); 522546#L26 call #t~ret0 := fact(~n - 1);< 522589#$Ultimate##0 ~n := #in~n; 522599#L25 assume !(~n <= 0); 522542#L26 call #t~ret0 := fact(~n - 1);< 522596#$Ultimate##0 ~n := #in~n; 522600#L25 assume ~n <= 0;#res := 1; 522598#factFINAL assume true; 522595#factEXIT >#66#return; 522593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522590#factFINAL assume true; 522587#factEXIT >#66#return; 522584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522583#factFINAL assume true; 522581#factEXIT >#66#return; 522580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522578#factFINAL assume true; 522576#factEXIT >#66#return; 522575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522573#factFINAL assume true; 522570#factEXIT >#66#return; 522568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522564#factFINAL assume true; 522561#factEXIT >#66#return; 522559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522560#factFINAL assume true; 522540#factEXIT >#66#return; 522551#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 522556#factFINAL assume true; 522557#factEXIT >#66#return; 522603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 523965#factFINAL assume true; 523962#factEXIT >#68#return; 521685#L30-1 [2023-02-17 09:42:56,174 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:56,174 INFO L85 PathProgramCache]: Analyzing trace with hash 1130948176, now seen corresponding path program 41 times [2023-02-17 09:42:56,174 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:56,174 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [309100300] [2023-02-17 09:42:56,175 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:56,175 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:56,192 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:56,193 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1723625752] [2023-02-17 09:42:56,193 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:56,193 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:56,193 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:56,197 INFO L229 MonitoredProcess]: Starting monitored process 231 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:56,198 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (231)] Waiting until timeout for monitored process [2023-02-17 09:42:57,846 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 35 check-sat command(s) [2023-02-17 09:42:57,847 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:57,854 INFO L263 TraceCheckSpWp]: Trace formula consists of 1501 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-17 09:42:57,858 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:57,951 INFO L134 CoverageAnalysis]: Checked inductivity of 27965 backedges. 4042 proven. 360 refuted. 0 times theorem prover too weak. 23563 trivial. 0 not checked. [2023-02-17 09:42:57,952 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:58,267 INFO L134 CoverageAnalysis]: Checked inductivity of 27965 backedges. 4048 proven. 404 refuted. 0 times theorem prover too weak. 23513 trivial. 0 not checked. [2023-02-17 09:42:58,268 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:58,269 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [309100300] [2023-02-17 09:42:58,269 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:58,269 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1723625752] [2023-02-17 09:42:58,269 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1723625752] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:58,269 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:58,269 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 25] total 31 [2023-02-17 09:42:58,269 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [813270101] [2023-02-17 09:42:58,269 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:58,269 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:42:58,269 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:42:58,270 INFO L85 PathProgramCache]: Analyzing trace with hash 1961470302, now seen corresponding path program 35 times [2023-02-17 09:42:58,270 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:42:58,270 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1620798815] [2023-02-17 09:42:58,270 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:42:58,270 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:42:58,291 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:42:58,292 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1460795376] [2023-02-17 09:42:58,292 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:42:58,292 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:42:58,292 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:42:58,295 INFO L229 MonitoredProcess]: Starting monitored process 232 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:42:58,296 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (232)] Waiting until timeout for monitored process [2023-02-17 09:42:59,080 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 25 check-sat command(s) [2023-02-17 09:42:59,080 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:42:59,083 INFO L263 TraceCheckSpWp]: Trace formula consists of 484 conjuncts, 41 conjunts are in the unsatisfiable core [2023-02-17 09:42:59,089 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:42:59,233 INFO L134 CoverageAnalysis]: Checked inductivity of 92200 backedges. 36714 proven. 1136 refuted. 0 times theorem prover too weak. 54350 trivial. 0 not checked. [2023-02-17 09:42:59,233 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:42:59,736 INFO L134 CoverageAnalysis]: Checked inductivity of 92200 backedges. 1722 proven. 11755 refuted. 0 times theorem prover too weak. 78723 trivial. 0 not checked. [2023-02-17 09:42:59,736 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:42:59,736 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1620798815] [2023-02-17 09:42:59,736 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:42:59,736 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1460795376] [2023-02-17 09:42:59,736 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1460795376] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:42:59,736 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:42:59,737 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 34] total 38 [2023-02-17 09:42:59,737 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1446744676] [2023-02-17 09:42:59,737 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:42:59,737 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:42:59,737 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:42:59,738 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2023-02-17 09:42:59,738 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=150, Invalid=842, Unknown=0, NotChecked=0, Total=992 [2023-02-17 09:42:59,738 INFO L87 Difference]: Start difference. First operand 3408 states and 7264 transitions. cyclomatic complexity: 3890 Second operand has 32 states, 27 states have (on average 3.2222222222222223) internal successors, (87), 31 states have internal predecessors, (87), 18 states have call successors, (30), 1 states have call predecessors, (30), 11 states have return successors, (36), 15 states have call predecessors, (36), 18 states have call successors, (36) [2023-02-17 09:43:01,805 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:01,805 INFO L93 Difference]: Finished difference Result 6864 states and 17469 transitions. [2023-02-17 09:43:01,805 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6864 states and 17469 transitions. [2023-02-17 09:43:01,863 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 1467 [2023-02-17 09:43:01,941 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6864 states to 6784 states and 17247 transitions. [2023-02-17 09:43:01,941 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 1268 [2023-02-17 09:43:01,942 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 1268 [2023-02-17 09:43:01,942 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6784 states and 17247 transitions. [2023-02-17 09:43:01,943 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:01,943 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6784 states and 17247 transitions. [2023-02-17 09:43:01,945 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6784 states and 17247 transitions. [2023-02-17 09:43:02,065 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6784 to 6010. [2023-02-17 09:43:02,072 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6010 states, 3166 states have (on average 1.0476942514213519) internal successors, (3317), 3142 states have internal predecessors, (3317), 2597 states have call successors, (2665), 337 states have call predecessors, (2665), 247 states have return successors, (9123), 2530 states have call predecessors, (9123), 2597 states have call successors, (9123) [2023-02-17 09:43:02,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6010 states to 6010 states and 15105 transitions. [2023-02-17 09:43:02,102 INFO L240 hiAutomatonCegarLoop]: Abstraction has 6010 states and 15105 transitions. [2023-02-17 09:43:02,102 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 34 states. [2023-02-17 09:43:02,102 INFO L428 stractBuchiCegarLoop]: Abstraction has 6010 states and 15105 transitions. [2023-02-17 09:43:02,102 INFO L335 stractBuchiCegarLoop]: ======== Iteration 65 ============ [2023-02-17 09:43:02,103 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 6010 states and 15105 transitions. [2023-02-17 09:43:02,124 INFO L131 ngComponentsAnalysis]: Automaton has 8 accepting balls. 1367 [2023-02-17 09:43:02,124 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:02,124 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:02,129 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [245, 245, 167, 167, 167, 167, 78, 26, 25, 16, 16, 16, 16, 16, 16, 16, 15, 15, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:02,129 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [128, 128, 101, 101, 101, 101, 27, 9, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1] [2023-02-17 09:43:02,130 INFO L748 eck$LassoCheckResult]: Stem: 543257#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 543174#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 543175#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 543196#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 543258#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 545501#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545498#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545495#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545496#$Ultimate##0 ~n := #in~n; 545774#L25 assume ~n <= 0;#res := 1; 545532#factFINAL assume true; 545494#factEXIT >#68#return; 543237#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 543238#$Ultimate##0 ~n := #in~n; 545786#L25 assume ~n <= 0;#res := 1; 545783#factFINAL assume true; 545770#factEXIT >#70#return; 545771#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546106#$Ultimate##0 ~n := #in~n; 546110#L25 assume ~n <= 0;#res := 1; 546108#factFINAL assume true; 546105#factEXIT >#72#return; 546103#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546101#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 546090#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546065#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546062#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546046#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546047#$Ultimate##0 ~n := #in~n; 546055#L25 assume !(~n <= 0); 546049#L26 call #t~ret0 := fact(~n - 1);< 546052#$Ultimate##0 ~n := #in~n; 546056#L25 assume ~n <= 0;#res := 1; 546054#factFINAL assume true; 546048#factEXIT >#66#return; 546051#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546057#factFINAL assume true; 546045#factEXIT >#74#return; 545833#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545834#$Ultimate##0 ~n := #in~n; 546044#L25 assume ~n <= 0;#res := 1; 545876#factFINAL assume true; 545832#factEXIT >#76#return; 545829#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545830#$Ultimate##0 ~n := #in~n; 546053#L25 assume !(~n <= 0); 546050#L26 call #t~ret0 := fact(~n - 1);< 546052#$Ultimate##0 ~n := #in~n; 546056#L25 assume ~n <= 0;#res := 1; 546054#factFINAL assume true; 546048#factEXIT >#66#return; 545835#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545831#factFINAL assume true; 545828#factEXIT >#78#return; 545827#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545826#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 545824#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545822#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545817#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545777#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545779#$Ultimate##0 ~n := #in~n; 545797#L25 assume !(~n <= 0); 545791#L26 call #t~ret0 := fact(~n - 1);< 545792#$Ultimate##0 ~n := #in~n; 545814#L25 assume !(~n <= 0); 545790#L26 call #t~ret0 := fact(~n - 1);< 545807#$Ultimate##0 ~n := #in~n; 545825#L25 assume ~n <= 0;#res := 1; 545823#factFINAL assume true; 545818#factEXIT >#66#return; 545813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545812#factFINAL assume true; 545804#factEXIT >#66#return; 545806#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545815#factFINAL assume true; 545810#factEXIT >#74#return; 545801#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545802#$Ultimate##0 ~n := #in~n; 545809#L25 assume ~n <= 0;#res := 1; 545808#factFINAL assume true; 545800#factEXIT >#76#return; 545794#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545795#$Ultimate##0 ~n := #in~n; 545816#L25 assume !(~n <= 0); 545805#L26 call #t~ret0 := fact(~n - 1);< 545811#$Ultimate##0 ~n := #in~n; 545821#L25 assume !(~n <= 0); 545819#L26 call #t~ret0 := fact(~n - 1);< 545820#$Ultimate##0 ~n := #in~n; 545825#L25 assume ~n <= 0;#res := 1; 545823#factFINAL assume true; 545818#factEXIT >#66#return; 545813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545812#factFINAL assume true; 545804#factEXIT >#66#return; 545803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545798#factFINAL assume true; 545793#factEXIT >#78#return; 545788#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545785#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 545782#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545781#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545780#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545778#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545779#$Ultimate##0 ~n := #in~n; 545797#L25 assume !(~n <= 0); 545791#L26 call #t~ret0 := fact(~n - 1);< 545792#$Ultimate##0 ~n := #in~n; 545814#L25 assume !(~n <= 0); 545790#L26 call #t~ret0 := fact(~n - 1);< 545807#$Ultimate##0 ~n := #in~n; 545814#L25 assume !(~n <= 0); 545790#L26 call #t~ret0 := fact(~n - 1);< 545807#$Ultimate##0 ~n := #in~n; 545825#L25 assume ~n <= 0;#res := 1; 545823#factFINAL assume true; 545818#factEXIT >#66#return; 545813#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545812#factFINAL assume true; 545804#factEXIT >#66#return; 545799#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545796#factFINAL assume true; 545789#factEXIT >#66#return; 545787#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545784#factFINAL assume true; 545776#factEXIT >#74#return; 545621#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545622#$Ultimate##0 ~n := #in~n; 545624#L25 assume ~n <= 0;#res := 1; 545623#factFINAL assume true; 545620#factEXIT >#76#return; 545618#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545619#$Ultimate##0 ~n := #in~n; 545637#L25 assume !(~n <= 0); 545630#L26 call #t~ret0 := fact(~n - 1);< 545636#$Ultimate##0 ~n := #in~n; 545649#L25 assume !(~n <= 0); 545631#L26 call #t~ret0 := fact(~n - 1);< 545633#$Ultimate##0 ~n := #in~n; 545660#L25 assume !(~n <= 0); 545629#L26 call #t~ret0 := fact(~n - 1);< 545659#$Ultimate##0 ~n := #in~n; 545663#L25 assume ~n <= 0;#res := 1; 545662#factFINAL assume true; 545658#factEXIT >#66#return; 545656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545645#factFINAL assume true; 545644#factEXIT >#66#return; 545642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545640#factFINAL assume true; 545639#factEXIT >#66#return; 545632#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545651#factFINAL assume true; 545617#factEXIT >#78#return; 545615#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 545614#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 545613#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 545610#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 545608#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545605#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545606#$Ultimate##0 ~n := #in~n; 545634#L25 assume !(~n <= 0); 545628#L26 call #t~ret0 := fact(~n - 1);< 545633#$Ultimate##0 ~n := #in~n; 545660#L25 assume !(~n <= 0); 545629#L26 call #t~ret0 := fact(~n - 1);< 545659#$Ultimate##0 ~n := #in~n; 545660#L25 assume !(~n <= 0); 545629#L26 call #t~ret0 := fact(~n - 1);< 545659#$Ultimate##0 ~n := #in~n; 545660#L25 assume !(~n <= 0); 545629#L26 call #t~ret0 := fact(~n - 1);< 545659#$Ultimate##0 ~n := #in~n; 545663#L25 assume ~n <= 0;#res := 1; 545662#factFINAL assume true; 545658#factEXIT >#66#return; 545656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545645#factFINAL assume true; 545644#factEXIT >#66#return; 545642#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545640#factFINAL assume true; 545639#factEXIT >#66#return; 545638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545635#factFINAL assume true; 545627#factEXIT >#66#return; 545626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545625#factFINAL assume true; 545604#factEXIT >#74#return; 545599#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545600#$Ultimate##0 ~n := #in~n; 545603#L25 assume ~n <= 0;#res := 1; 545602#factFINAL assume true; 545598#factEXIT >#76#return; 545241#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545595#$Ultimate##0 ~n := #in~n; 545592#L25 assume !(~n <= 0); 545569#L26 call #t~ret0 := fact(~n - 1);< 545590#$Ultimate##0 ~n := #in~n; 545647#L25 assume !(~n <= 0); 545572#L26 call #t~ret0 := fact(~n - 1);< 545594#$Ultimate##0 ~n := #in~n; 545616#L25 assume !(~n <= 0); 545576#L26 call #t~ret0 := fact(~n - 1);< 545612#$Ultimate##0 ~n := #in~n; 545616#L25 assume !(~n <= 0); 545576#L26 call #t~ret0 := fact(~n - 1);< 545612#$Ultimate##0 ~n := #in~n; 545643#L25 assume ~n <= 0;#res := 1; 545641#factFINAL assume true; 545611#factEXIT >#66#return; 545609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545607#factFINAL assume true; 545601#factEXIT >#66#return; 545597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545596#factFINAL assume true; 545593#factEXIT >#66#return; 545591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545589#factFINAL assume true; 545586#factEXIT >#66#return; 545587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546521#factFINAL assume true; 545240#factEXIT >#78#return; 545242#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546286#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 546285#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546284#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546283#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545023#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545024#$Ultimate##0 ~n := #in~n; 545035#L25 assume !(~n <= 0); 545030#L26 call #t~ret0 := fact(~n - 1);< 545031#$Ultimate##0 ~n := #in~n; 545047#L25 assume !(~n <= 0); 545045#L26 call #t~ret0 := fact(~n - 1);< 545046#$Ultimate##0 ~n := #in~n; 545056#L25 assume !(~n <= 0); 545053#L26 call #t~ret0 := fact(~n - 1);< 545054#$Ultimate##0 ~n := #in~n; 545071#L25 assume !(~n <= 0); 545052#L26 call #t~ret0 := fact(~n - 1);< 545070#$Ultimate##0 ~n := #in~n; 545071#L25 assume !(~n <= 0); 545052#L26 call #t~ret0 := fact(~n - 1);< 545070#$Ultimate##0 ~n := #in~n; 545136#L25 assume ~n <= 0;#res := 1; 545135#factFINAL assume true; 545130#factEXIT >#66#return; 545129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545128#factFINAL assume true; 545069#factEXIT >#66#return; 545067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545064#factFINAL assume true; 545051#factEXIT >#66#return; 545049#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545048#factFINAL assume true; 545044#factEXIT >#66#return; 545042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545038#factFINAL assume true; 545029#factEXIT >#66#return; 545027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545025#factFINAL assume true; 545022#factEXIT >#74#return; 545019#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545020#$Ultimate##0 ~n := #in~n; 545099#L25 assume ~n <= 0;#res := 1; 545098#factFINAL assume true; 545018#factEXIT >#76#return; 544737#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545000#$Ultimate##0 ~n := #in~n; 544992#L25 assume !(~n <= 0); 544762#L26 call #t~ret0 := fact(~n - 1);< 545006#$Ultimate##0 ~n := #in~n; 545131#L25 assume !(~n <= 0); 544763#L26 call #t~ret0 := fact(~n - 1);< 545086#$Ultimate##0 ~n := #in~n; 545132#L25 assume !(~n <= 0); 544764#L26 call #t~ret0 := fact(~n - 1);< 545106#$Ultimate##0 ~n := #in~n; 545133#L25 assume !(~n <= 0); 544755#L26 call #t~ret0 := fact(~n - 1);< 545116#$Ultimate##0 ~n := #in~n; 545123#L25 assume !(~n <= 0); 544758#L26 call #t~ret0 := fact(~n - 1);< 545122#$Ultimate##0 ~n := #in~n; 545127#L25 assume ~n <= 0;#res := 1; 545124#factFINAL assume true; 545121#factEXIT >#66#return; 545119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545117#factFINAL assume true; 545115#factEXIT >#66#return; 545113#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545111#factFINAL assume true; 545105#factEXIT >#66#return; 545104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545102#factFINAL assume true; 545085#factEXIT >#66#return; 545084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545016#factFINAL assume true; 545005#factEXIT >#66#return; 544770#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 545358#factFINAL assume true; 544736#factEXIT >#78#return; 544734#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 544732#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 544731#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 544729#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 544727#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 544724#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 544720#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 544718#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544614#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544685#$Ultimate##0 ~n := #in~n; 544726#L25 assume !(~n <= 0); 544722#L26 call #t~ret0 := fact(~n - 1);< 544723#$Ultimate##0 ~n := #in~n; 544728#L25 assume ~n <= 0;#res := 1; 544725#factFINAL assume true; 544721#factEXIT >#66#return; 544719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544717#factFINAL assume true; 544684#factEXIT >#68#return; 544617#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544681#$Ultimate##0 ~n := #in~n; 544716#L25 assume ~n <= 0;#res := 1; 544683#factFINAL assume true; 544551#factEXIT >#70#return; 544519#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544520#$Ultimate##0 ~n := #in~n; 544548#L25 assume !(~n <= 0); 544543#L26 call #t~ret0 := fact(~n - 1);< 544544#$Ultimate##0 ~n := #in~n; 544549#L25 assume ~n <= 0;#res := 1; 544547#factFINAL assume true; 544542#factEXIT >#66#return; 544539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544538#factFINAL assume true; 544518#factEXIT >#72#return; 544512#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 544511#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 544510#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 544505#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 544495#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542913#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544493#$Ultimate##0 ~n := #in~n; 544841#L25 assume !(~n <= 0); 543592#L26 call #t~ret0 := fact(~n - 1);< 544503#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544492#factFINAL assume true; 544182#factEXIT >#68#return; 544358#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544489#$Ultimate##0 ~n := #in~n; 544509#L25 assume !(~n <= 0); 544498#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544492#factFINAL assume true; 544182#factEXIT >#70#return; 544036#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544177#$Ultimate##0 ~n := #in~n; 544490#L25 assume ~n <= 0;#res := 1; 544179#factFINAL assume true; 543620#factEXIT >#72#return; 543617#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 543612#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 543610#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 543608#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 543576#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 543492#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 543572#$Ultimate##0 ~n := #in~n; 544843#L25 assume !(~n <= 0); 543601#L26 call #t~ret0 := fact(~n - 1);< 544503#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#74#return; 543571#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545203#$Ultimate##0 ~n := #in~n; 545177#L25 assume !(~n <= 0); 544499#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546058#factFINAL assume true; 545836#factEXIT >#76#return; 545183#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545203#$Ultimate##0 ~n := #in~n; 545177#L25 assume !(~n <= 0); 544499#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546058#factFINAL assume true; 545836#factEXIT >#78#return; 545862#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546393#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 546392#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546391#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546390#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544851#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544903#$Ultimate##0 ~n := #in~n; 544846#L25 assume !(~n <= 0); 543595#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546111#factFINAL assume true; 546109#factEXIT >#74#return; 545188#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545203#$Ultimate##0 ~n := #in~n; 545177#L25 assume !(~n <= 0); 544499#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546058#factFINAL assume true; 545836#factEXIT >#76#return; 543446#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544735#$Ultimate##0 ~n := #in~n; 544733#L25 assume !(~n <= 0); 543586#L26 call #t~ret0 := fact(~n - 1);< 544517#$Ultimate##0 ~n := #in~n; 543619#L25 assume !(~n <= 0); 543614#L26 call #t~ret0 := fact(~n - 1);< 543615#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#78#return; 543531#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546396#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 546395#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546394#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546362#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544858#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544903#$Ultimate##0 ~n := #in~n; 544846#L25 assume !(~n <= 0); 543595#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546098#factFINAL assume true; 546084#factEXIT >#74#return; 545197#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545203#$Ultimate##0 ~n := #in~n; 545177#L25 assume !(~n <= 0); 544499#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546058#factFINAL assume true; 545836#factEXIT >#76#return; 545273#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545274#$Ultimate##0 ~n := #in~n; 546120#L25 assume !(~n <= 0); 544513#L26 call #t~ret0 := fact(~n - 1);< 544682#$Ultimate##0 ~n := #in~n; 544533#L25 assume !(~n <= 0); 543596#L26 call #t~ret0 := fact(~n - 1);< 544506#$Ultimate##0 ~n := #in~n; 544496#L25 assume !(~n <= 0); 543587#L26 call #t~ret0 := fact(~n - 1);< 544491#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546111#factFINAL assume true; 546109#factEXIT >#78#return; 546107#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 546104#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 546102#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546099#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542772#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 542773#$Ultimate##0 ~n := #in~n; 547092#L25 assume !(~n <= 0); 546887#L26 call #t~ret0 := fact(~n - 1);< 547087#$Ultimate##0 ~n := #in~n; 547085#L25 assume !(~n <= 0); 546891#L26 call #t~ret0 := fact(~n - 1);< 547081#$Ultimate##0 ~n := #in~n; 547079#L25 assume !(~n <= 0); 546884#L26 call #t~ret0 := fact(~n - 1);< 546989#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546964#factFINAL assume true; 546951#factEXIT >#66#return; 546959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547147#factFINAL assume true; 547109#factEXIT >#66#return; 547107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547100#factFINAL assume true; 547097#factEXIT >#74#return; 543182#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 543254#$Ultimate##0 ~n := #in~n; 547173#L25 assume !(~n <= 0); 542783#L26 call #t~ret0 := fact(~n - 1);< 543184#$Ultimate##0 ~n := #in~n; 543233#L25 assume ~n <= 0;#res := 1; 542802#factFINAL assume true; 542781#factEXIT >#66#return; 542785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547533#factFINAL assume true; 547532#factEXIT >#76#return; 546929#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 547078#$Ultimate##0 ~n := #in~n; 547077#L25 assume !(~n <= 0); 546956#L26 call #t~ret0 := fact(~n - 1);< 547075#$Ultimate##0 ~n := #in~n; 547013#L25 assume !(~n <= 0); 546971#L26 call #t~ret0 := fact(~n - 1);< 546976#$Ultimate##0 ~n := #in~n; 547014#L25 assume !(~n <= 0); 546986#L26 call #t~ret0 := fact(~n - 1);< 546990#$Ultimate##0 ~n := #in~n; 547076#L25 assume !(~n <= 0); 547019#L26 call #t~ret0 := fact(~n - 1);< 547023#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546964#factFINAL assume true; 546951#factEXIT >#66#return; 546945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546941#factFINAL assume true; 546903#factEXIT >#78#return; 546936#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 548194#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 548192#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 548175#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 543190#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 543191#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 543263#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 543261#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 543262#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546611#$Ultimate##0 ~n := #in~n; 546610#L25 assume !(~n <= 0); 546401#L26 call #t~ret0 := fact(~n - 1);< 546609#$Ultimate##0 ~n := #in~n; 544730#L25 assume !(~n <= 0); 546408#L26 call #t~ret0 := fact(~n - 1);< 546615#$Ultimate##0 ~n := #in~n; 546617#L25 assume ~n <= 0;#res := 1; 546616#factFINAL assume true; 546614#factEXIT >#66#return; 546612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546608#factFINAL assume true; 546604#factEXIT >#66#return; 546605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547297#factFINAL assume true; 547217#factEXIT >#68#return; 544581#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544681#$Ultimate##0 ~n := #in~n; 544716#L25 assume ~n <= 0;#res := 1; 544683#factFINAL assume true; 544551#factEXIT >#70#return; 544647#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546585#$Ultimate##0 ~n := #in~n; 546578#L25 assume !(~n <= 0); 546563#L26 call #t~ret0 := fact(~n - 1);< 546567#$Ultimate##0 ~n := #in~n; 544550#L25 assume !(~n <= 0); 546580#L26 call #t~ret0 := fact(~n - 1);< 546582#$Ultimate##0 ~n := #in~n; 546589#L25 assume ~n <= 0;#res := 1; 546587#factFINAL assume true; 546579#factEXIT >#66#return; 546577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546576#factFINAL assume true; 546560#factEXIT >#66#return; 546564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546865#factFINAL assume true; 546847#factEXIT >#72#return; 546855#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 548104#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 548020#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 546868#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546869#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542901#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544868#$Ultimate##0 ~n := #in~n; 544869#L25 assume !(~n <= 0); 543598#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546366#factFINAL assume true; 546361#factEXIT >#68#return; 544364#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544820#$Ultimate##0 ~n := #in~n; 544819#L25 assume !(~n <= 0); 543588#L26 call #t~ret0 := fact(~n - 1);< 544812#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544492#factFINAL assume true; 544182#factEXIT >#70#return; 543936#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544180#$Ultimate##0 ~n := #in~n; 545201#L25 assume !(~n <= 0); 544500#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547055#factFINAL assume true; 547034#factEXIT >#72#return; 547046#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547731#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547730#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547724#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 546636#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542989#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544868#$Ultimate##0 ~n := #in~n; 544869#L25 assume !(~n <= 0); 543598#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546366#factFINAL assume true; 546361#factEXIT >#68#return; 544375#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544820#$Ultimate##0 ~n := #in~n; 544819#L25 assume !(~n <= 0); 543588#L26 call #t~ret0 := fact(~n - 1);< 544812#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546366#factFINAL assume true; 546361#factEXIT >#70#return; 543944#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544180#$Ultimate##0 ~n := #in~n; 545201#L25 assume ~n <= 0;#res := 1; 544179#factFINAL assume true; 543620#factEXIT >#72#return; 544142#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547836#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547835#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547834#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547832#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544849#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544903#$Ultimate##0 ~n := #in~n; 544846#L25 assume !(~n <= 0); 543595#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546111#factFINAL assume true; 546109#factEXIT >#74#return; 543399#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 543574#$Ultimate##0 ~n := #in~n; 544824#L25 assume !(~n <= 0); 543600#L26 call #t~ret0 := fact(~n - 1);< 544814#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#76#return; 543404#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544735#$Ultimate##0 ~n := #in~n; 544733#L25 assume !(~n <= 0); 543586#L26 call #t~ret0 := fact(~n - 1);< 544517#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546058#factFINAL assume true; 545836#factEXIT >#78#return; 545858#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547828#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547827#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547826#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547825#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544847#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544903#$Ultimate##0 ~n := #in~n; 544846#L25 assume !(~n <= 0); 543595#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546098#factFINAL assume true; 546084#factEXIT >#74#return; 543407#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 543574#$Ultimate##0 ~n := #in~n; 544824#L25 assume !(~n <= 0); 543600#L26 call #t~ret0 := fact(~n - 1);< 544814#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#76#return; 543408#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544735#$Ultimate##0 ~n := #in~n; 544733#L25 assume !(~n <= 0); 543586#L26 call #t~ret0 := fact(~n - 1);< 544517#$Ultimate##0 ~n := #in~n; 543619#L25 assume !(~n <= 0); 543614#L26 call #t~ret0 := fact(~n - 1);< 543615#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#78#return; 543514#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547824#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547823#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547822#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547821#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544937#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544981#$Ultimate##0 ~n := #in~n; 544980#L25 assume !(~n <= 0); 544902#L26 call #t~ret0 := fact(~n - 1);< 544905#$Ultimate##0 ~n := #in~n; 544904#L25 assume !(~n <= 0); 544845#L26 call #t~ret0 := fact(~n - 1);< 544866#$Ultimate##0 ~n := #in~n; 544867#L25 assume !(~n <= 0); 543583#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546164#factFINAL assume true; 546082#factEXIT >#74#return; 543425#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 543574#$Ultimate##0 ~n := #in~n; 544824#L25 assume !(~n <= 0); 543600#L26 call #t~ret0 := fact(~n - 1);< 544814#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544534#L25 assume !(~n <= 0); 543599#L26 call #t~ret0 := fact(~n - 1);< 544507#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546111#factFINAL assume true; 546109#factEXIT >#76#return; 543428#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544546#$Ultimate##0 ~n := #in~n; 544541#L25 assume !(~n <= 0); 543591#L26 call #t~ret0 := fact(~n - 1);< 544537#$Ultimate##0 ~n := #in~n; 544534#L25 assume !(~n <= 0); 543599#L26 call #t~ret0 := fact(~n - 1);< 544507#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#78#return; 543522#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547820#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547818#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547816#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547814#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546754#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 542773#$Ultimate##0 ~n := #in~n; 547092#L25 assume !(~n <= 0); 546887#L26 call #t~ret0 := fact(~n - 1);< 547087#$Ultimate##0 ~n := #in~n; 547085#L25 assume !(~n <= 0); 546891#L26 call #t~ret0 := fact(~n - 1);< 547081#$Ultimate##0 ~n := #in~n; 547079#L25 assume !(~n <= 0); 546884#L26 call #t~ret0 := fact(~n - 1);< 546989#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546964#factFINAL assume true; 546951#factEXIT >#66#return; 546959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547147#factFINAL assume true; 547109#factEXIT >#66#return; 547110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547123#factFINAL assume true; 547121#factEXIT >#66#return; 547122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547181#factFINAL assume true; 547180#factEXIT >#66#return; 547179#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547178#factFINAL assume true; 546672#factEXIT >#74#return; 546753#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 547089#$Ultimate##0 ~n := #in~n; 547088#L25 assume !(~n <= 0); 546882#L26 call #t~ret0 := fact(~n - 1);< 546979#$Ultimate##0 ~n := #in~n; 547095#L25 assume !(~n <= 0); 546890#L26 call #t~ret0 := fact(~n - 1);< 546989#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547274#factFINAL assume true; 547186#factEXIT >#76#return; 546779#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546872#$Ultimate##0 ~n := #in~n; 547099#L25 assume !(~n <= 0); 546898#L26 call #t~ret0 := fact(~n - 1);< 547094#$Ultimate##0 ~n := #in~n; 547093#L25 assume !(~n <= 0); 546892#L26 call #t~ret0 := fact(~n - 1);< 546975#$Ultimate##0 ~n := #in~n; 547095#L25 assume !(~n <= 0); 546890#L26 call #t~ret0 := fact(~n - 1);< 546989#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546964#factFINAL assume true; 546951#factEXIT >#66#return; 546945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546941#factFINAL assume true; 546903#factEXIT >#78#return; 546939#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547812#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547811#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547810#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 547809#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 547808#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 547807#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547806#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546348#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546611#$Ultimate##0 ~n := #in~n; 546610#L25 assume !(~n <= 0); 546401#L26 call #t~ret0 := fact(~n - 1);< 546609#$Ultimate##0 ~n := #in~n; 544730#L25 assume !(~n <= 0); 546408#L26 call #t~ret0 := fact(~n - 1);< 546615#$Ultimate##0 ~n := #in~n; 546617#L25 assume ~n <= 0;#res := 1; 546616#factFINAL assume true; 546614#factEXIT >#66#return; 546612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546608#factFINAL assume true; 546604#factEXIT >#66#return; 546605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547297#factFINAL assume true; 547217#factEXIT >#68#return; 544602#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544681#$Ultimate##0 ~n := #in~n; 544716#L25 assume ~n <= 0;#res := 1; 544683#factFINAL assume true; 544551#factEXIT >#70#return; 544667#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546860#$Ultimate##0 ~n := #in~n; 547315#L25 assume !(~n <= 0); 547311#L26 call #t~ret0 := fact(~n - 1);< 547313#$Ultimate##0 ~n := #in~n; 547328#L25 assume !(~n <= 0); 547325#L26 call #t~ret0 := fact(~n - 1);< 547327#$Ultimate##0 ~n := #in~n; 547341#L25 assume ~n <= 0;#res := 1; 547339#factFINAL assume true; 547324#factEXIT >#66#return; 547323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547321#factFINAL assume true; 547304#factEXIT >#66#return; 547302#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547300#factFINAL assume true; 547221#factEXIT >#72#return; 547223#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547803#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547801#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547799#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547798#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 543225#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 546437#$Ultimate##0 ~n := #in~n; 546436#L25 assume !(~n <= 0); 546255#L26 call #t~ret0 := fact(~n - 1);< 546434#$Ultimate##0 ~n := #in~n; 546443#L25 assume !(~n <= 0); 546257#L26 call #t~ret0 := fact(~n - 1);< 546442#$Ultimate##0 ~n := #in~n; 546445#L25 assume ~n <= 0;#res := 1; 546444#factFINAL assume true; 546441#factEXIT >#66#return; 546439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546435#factFINAL assume true; 546432#factEXIT >#66#return; 546433#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547534#factFINAL assume true; 547452#factEXIT >#68#return; 546183#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 543236#$Ultimate##0 ~n := #in~n; 546244#L25 assume ~n <= 0;#res := 1; 546243#factFINAL assume true; 546169#factEXIT >#70#return; 544532#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545211#$Ultimate##0 ~n := #in~n; 545205#L25 assume !(~n <= 0); 543593#L26 call #t~ret0 := fact(~n - 1);< 544178#$Ultimate##0 ~n := #in~n; 543619#L25 assume !(~n <= 0); 543614#L26 call #t~ret0 := fact(~n - 1);< 543615#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543606#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547535#factFINAL assume true; 547443#factEXIT >#72#return; 547040#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547795#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547793#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547791#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547790#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 543064#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544868#$Ultimate##0 ~n := #in~n; 544869#L25 assume !(~n <= 0); 543598#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546389#factFINAL assume true; 546360#factEXIT >#68#return; 544293#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544820#$Ultimate##0 ~n := #in~n; 544819#L25 assume !(~n <= 0); 543588#L26 call #t~ret0 := fact(~n - 1);< 544812#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546366#factFINAL assume true; 546361#factEXIT >#70#return; 543810#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544782#$Ultimate##0 ~n := #in~n; 544781#L25 assume ~n <= 0;#res := 1; 544179#factFINAL assume true; 543620#factEXIT >#72#return; 544105#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547789#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547788#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547786#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547784#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542812#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545275#$Ultimate##0 ~n := #in~n; 545246#L25 assume !(~n <= 0); 544863#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546132#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547423#factFINAL assume true; 547422#factEXIT >#68#return; 544319#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544820#$Ultimate##0 ~n := #in~n; 544819#L25 assume !(~n <= 0); 543588#L26 call #t~ret0 := fact(~n - 1);< 544812#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544534#L25 assume !(~n <= 0); 543599#L26 call #t~ret0 := fact(~n - 1);< 544507#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546389#factFINAL assume true; 546360#factEXIT >#70#return; 543855#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544545#$Ultimate##0 ~n := #in~n; 544540#L25 assume ~n <= 0;#res := 1; 544179#factFINAL assume true; 543620#factEXIT >#72#return; 544117#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547985#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547984#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547983#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547561#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 545980#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545329#$Ultimate##0 ~n := #in~n; 546092#L25 assume !(~n <= 0); 544861#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546098#factFINAL assume true; 546084#factEXIT >#74#return; 545254#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545279#$Ultimate##0 ~n := #in~n; 545280#L25 assume !(~n <= 0); 545207#L26 call #t~ret0 := fact(~n - 1);< 545245#$Ultimate##0 ~n := #in~n; 545206#L25 assume !(~n <= 0); 544514#L26 call #t~ret0 := fact(~n - 1);< 544682#$Ultimate##0 ~n := #in~n; 544533#L25 assume !(~n <= 0); 543596#L26 call #t~ret0 := fact(~n - 1);< 544506#$Ultimate##0 ~n := #in~n; 544496#L25 assume !(~n <= 0); 543587#L26 call #t~ret0 := fact(~n - 1);< 544491#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546098#factFINAL assume true; 546084#factEXIT >#76#return; 545190#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545203#$Ultimate##0 ~n := #in~n; 545177#L25 assume !(~n <= 0); 544499#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546058#factFINAL assume true; 545836#factEXIT >#78#return; 545845#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547557#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547556#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547554#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547552#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544939#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544981#$Ultimate##0 ~n := #in~n; 544980#L25 assume !(~n <= 0); 544902#L26 call #t~ret0 := fact(~n - 1);< 544905#$Ultimate##0 ~n := #in~n; 544904#L25 assume !(~n <= 0); 544845#L26 call #t~ret0 := fact(~n - 1);< 544866#$Ultimate##0 ~n := #in~n; 544867#L25 assume !(~n <= 0); 543583#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546164#factFINAL assume true; 546082#factEXIT >#74#return; 545270#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545279#$Ultimate##0 ~n := #in~n; 545280#L25 assume !(~n <= 0); 545207#L26 call #t~ret0 := fact(~n - 1);< 545245#$Ultimate##0 ~n := #in~n; 545206#L25 assume !(~n <= 0); 544514#L26 call #t~ret0 := fact(~n - 1);< 544682#$Ultimate##0 ~n := #in~n; 544533#L25 assume !(~n <= 0); 543596#L26 call #t~ret0 := fact(~n - 1);< 544506#$Ultimate##0 ~n := #in~n; 544496#L25 assume !(~n <= 0); 543587#L26 call #t~ret0 := fact(~n - 1);< 544491#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546098#factFINAL assume true; 546084#factEXIT >#76#return; 543474#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544546#$Ultimate##0 ~n := #in~n; 544541#L25 assume !(~n <= 0); 543591#L26 call #t~ret0 := fact(~n - 1);< 544537#$Ultimate##0 ~n := #in~n; 544534#L25 assume !(~n <= 0); 543599#L26 call #t~ret0 := fact(~n - 1);< 544507#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#78#return; 543532#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547549#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547548#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547547#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547545#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544928#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544981#$Ultimate##0 ~n := #in~n; 544980#L25 assume !(~n <= 0); 544902#L26 call #t~ret0 := fact(~n - 1);< 544905#$Ultimate##0 ~n := #in~n; 544904#L25 assume !(~n <= 0); 544845#L26 call #t~ret0 := fact(~n - 1);< 544866#$Ultimate##0 ~n := #in~n; 544867#L25 assume !(~n <= 0); 543583#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546127#factFINAL assume true; 546122#factEXIT >#66#return; 546124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546147#factFINAL assume true; 546145#factEXIT >#66#return; 546074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546161#factFINAL assume true; 546066#factEXIT >#66#return; 546063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546059#factFINAL assume true; 545877#factEXIT >#74#return; 545894#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545340#$Ultimate##0 ~n := #in~n; 546091#L25 assume !(~n <= 0); 546073#L26 call #t~ret0 := fact(~n - 1);< 545327#$Ultimate##0 ~n := #in~n; 546136#L25 assume !(~n <= 0); 544862#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546098#factFINAL assume true; 546084#factEXIT >#76#return; 543339#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 543572#$Ultimate##0 ~n := #in~n; 544843#L25 assume !(~n <= 0); 543601#L26 call #t~ret0 := fact(~n - 1);< 544503#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#78#return; 543542#L30-8 [2023-02-17 09:43:02,131 INFO L750 eck$LassoCheckResult]: Loop: 543542#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547314#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547303#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547301#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547241#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546726#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 542773#$Ultimate##0 ~n := #in~n; 547092#L25 assume !(~n <= 0); 546887#L26 call #t~ret0 := fact(~n - 1);< 547087#$Ultimate##0 ~n := #in~n; 547085#L25 assume !(~n <= 0); 546891#L26 call #t~ret0 := fact(~n - 1);< 547081#$Ultimate##0 ~n := #in~n; 547079#L25 assume !(~n <= 0); 546884#L26 call #t~ret0 := fact(~n - 1);< 546989#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547030#L25 assume !(~n <= 0); 546886#L26 call #t~ret0 := fact(~n - 1);< 547022#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546964#factFINAL assume true; 546951#factEXIT >#66#return; 546959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547147#factFINAL assume true; 547109#factEXIT >#66#return; 547107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547100#factFINAL assume true; 547097#factEXIT >#74#return; 546920#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 547074#$Ultimate##0 ~n := #in~n; 547012#L25 assume !(~n <= 0); 546958#L26 call #t~ret0 := fact(~n - 1);< 547011#$Ultimate##0 ~n := #in~n; 547010#L25 assume !(~n <= 0); 546954#L26 call #t~ret0 := fact(~n - 1);< 546966#$Ultimate##0 ~n := #in~n; 547033#L25 assume !(~n <= 0); 546973#L26 call #t~ret0 := fact(~n - 1);< 546976#$Ultimate##0 ~n := #in~n; 547014#L25 assume !(~n <= 0); 546986#L26 call #t~ret0 := fact(~n - 1);< 546990#$Ultimate##0 ~n := #in~n; 547076#L25 assume !(~n <= 0); 547019#L26 call #t~ret0 := fact(~n - 1);< 547023#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546964#factFINAL assume true; 546951#factEXIT >#66#return; 546959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547147#factFINAL assume true; 547109#factEXIT >#66#return; 547107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547100#factFINAL assume true; 547097#factEXIT >#76#return; 546927#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 547190#$Ultimate##0 ~n := #in~n; 547188#L25 assume !(~n <= 0); 542784#L26 call #t~ret0 := fact(~n - 1);< 546961#$Ultimate##0 ~n := #in~n; 547073#L25 assume !(~n <= 0); 546972#L26 call #t~ret0 := fact(~n - 1);< 547021#$Ultimate##0 ~n := #in~n; 547014#L25 assume !(~n <= 0); 546986#L26 call #t~ret0 := fact(~n - 1);< 546990#$Ultimate##0 ~n := #in~n; 547076#L25 assume !(~n <= 0); 547019#L26 call #t~ret0 := fact(~n - 1);< 547023#$Ultimate##0 ~n := #in~n; 547028#L25 assume ~n <= 0;#res := 1; 547026#factFINAL assume true; 547018#factEXIT >#66#return; 547015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547007#factFINAL assume true; 546985#factEXIT >#66#return; 546983#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546978#factFINAL assume true; 546970#factEXIT >#66#return; 546969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546964#factFINAL assume true; 546951#factEXIT >#66#return; 546945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546941#factFINAL assume true; 546903#factEXIT >#78#return; 546935#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547898#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547896#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547894#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 547892#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 547880#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 547879#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547878#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546347#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 542799#$Ultimate##0 ~n := #in~n; 546481#L25 assume !(~n <= 0); 546403#L26 call #t~ret0 := fact(~n - 1);< 546477#$Ultimate##0 ~n := #in~n; 546618#L25 assume !(~n <= 0); 546405#L26 call #t~ret0 := fact(~n - 1);< 546606#$Ultimate##0 ~n := #in~n; 544730#L25 assume !(~n <= 0); 546408#L26 call #t~ret0 := fact(~n - 1);< 546615#$Ultimate##0 ~n := #in~n; 544730#L25 assume !(~n <= 0); 546408#L26 call #t~ret0 := fact(~n - 1);< 546615#$Ultimate##0 ~n := #in~n; 544730#L25 assume !(~n <= 0); 546408#L26 call #t~ret0 := fact(~n - 1);< 546615#$Ultimate##0 ~n := #in~n; 544730#L25 assume !(~n <= 0); 546408#L26 call #t~ret0 := fact(~n - 1);< 546615#$Ultimate##0 ~n := #in~n; 546617#L25 assume ~n <= 0;#res := 1; 546616#factFINAL assume true; 546614#factEXIT >#66#return; 546612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546608#factFINAL assume true; 546604#factEXIT >#66#return; 546602#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546601#factFINAL assume true; 546598#factEXIT >#66#return; 546597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546596#factFINAL assume true; 546590#factEXIT >#66#return; 546588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546586#factFINAL assume true; 546551#factEXIT >#66#return; 546539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546538#factFINAL assume true; 546534#factEXIT >#66#return; 546535#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547238#factFINAL assume true; 547237#factEXIT >#68#return; 544555#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544685#$Ultimate##0 ~n := #in~n; 544726#L25 assume ~n <= 0;#res := 1; 544683#factFINAL assume true; 544551#factEXIT >#70#return; 544621#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 546619#$Ultimate##0 ~n := #in~n; 546554#L25 assume !(~n <= 0); 546461#L26 call #t~ret0 := fact(~n - 1);< 546465#$Ultimate##0 ~n := #in~n; 546537#L25 assume !(~n <= 0); 546471#L26 call #t~ret0 := fact(~n - 1);< 546475#$Ultimate##0 ~n := #in~n; 546575#L25 assume !(~n <= 0); 546528#L26 call #t~ret0 := fact(~n - 1);< 546532#$Ultimate##0 ~n := #in~n; 546573#L25 assume !(~n <= 0); 546545#L26 call #t~ret0 := fact(~n - 1);< 546547#$Ultimate##0 ~n := #in~n; 546607#L25 assume !(~n <= 0); 546562#L26 call #t~ret0 := fact(~n - 1);< 546567#$Ultimate##0 ~n := #in~n; 544550#L25 assume !(~n <= 0); 546580#L26 call #t~ret0 := fact(~n - 1);< 546582#$Ultimate##0 ~n := #in~n; 546589#L25 assume ~n <= 0;#res := 1; 546587#factFINAL assume true; 546579#factEXIT >#66#return; 546577#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546576#factFINAL assume true; 546560#factEXIT >#66#return; 546559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546557#factFINAL assume true; 546543#factEXIT >#66#return; 546542#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546540#factFINAL assume true; 546525#factEXIT >#66#return; 546524#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546522#factFINAL assume true; 546469#factEXIT >#66#return; 546468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546464#factFINAL assume true; 546458#factEXIT >#66#return; 546462#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546864#factFINAL assume true; 546671#factEXIT >#72#return; 546317#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547888#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547887#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547886#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547884#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542973#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545275#$Ultimate##0 ~n := #in~n; 545246#L25 assume !(~n <= 0); 544863#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546127#factFINAL assume true; 546122#factEXIT >#66#return; 546125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547426#factFINAL assume true; 547424#factEXIT >#68#return; 543003#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544493#$Ultimate##0 ~n := #in~n; 544841#L25 assume !(~n <= 0); 543592#L26 call #t~ret0 := fact(~n - 1);< 544503#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544494#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 544492#factFINAL assume true; 544182#factEXIT >#70#return; 544460#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544995#$Ultimate##0 ~n := #in~n; 544870#L25 assume !(~n <= 0); 544816#L26 call #t~ret0 := fact(~n - 1);< 544827#$Ultimate##0 ~n := #in~n; 544823#L25 assume !(~n <= 0); 543589#L26 call #t~ret0 := fact(~n - 1);< 544814#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544534#L25 assume !(~n <= 0); 543599#L26 call #t~ret0 := fact(~n - 1);< 544507#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547539#factFINAL assume true; 547357#factEXIT >#72#return; 546506#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547868#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547867#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547865#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547861#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 543101#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545275#$Ultimate##0 ~n := #in~n; 545246#L25 assume !(~n <= 0); 544863#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546389#factFINAL assume true; 546360#factEXIT >#68#return; 544428#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544820#$Ultimate##0 ~n := #in~n; 544819#L25 assume !(~n <= 0); 543588#L26 call #t~ret0 := fact(~n - 1);< 544812#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546366#factFINAL assume true; 546361#factEXIT >#70#return; 544035#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544782#$Ultimate##0 ~n := #in~n; 544781#L25 assume !(~n <= 0); 543584#L26 call #t~ret0 := fact(~n - 1);< 544517#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547055#factFINAL assume true; 547034#factEXIT >#72#return; 544174#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 548423#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 548422#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 548421#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 548420#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542816#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545275#$Ultimate##0 ~n := #in~n; 545246#L25 assume !(~n <= 0); 544863#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546127#factFINAL assume true; 546122#factEXIT >#66#return; 546125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547426#factFINAL assume true; 547424#factEXIT >#68#return; 542842#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544493#$Ultimate##0 ~n := #in~n; 544841#L25 assume !(~n <= 0); 543592#L26 call #t~ret0 := fact(~n - 1);< 544503#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546127#factFINAL assume true; 546122#factEXIT >#66#return; 546124#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546147#factFINAL assume true; 546145#factEXIT >#66#return; 546074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546161#factFINAL assume true; 546066#factEXIT >#66#return; 546076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546165#factFINAL assume true; 546148#factEXIT >#70#return; 543651#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544842#$Ultimate##0 ~n := #in~n; 544840#L25 assume !(~n <= 0); 543578#L26 call #t~ret0 := fact(~n - 1);< 544825#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547055#factFINAL assume true; 547034#factEXIT >#72#return; 544121#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547778#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547777#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547775#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547743#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 542869#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545275#$Ultimate##0 ~n := #in~n; 545246#L25 assume !(~n <= 0); 544863#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546142#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 547280#factFINAL assume true; 547257#factEXIT >#68#return; 544360#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 544820#$Ultimate##0 ~n := #in~n; 544819#L25 assume !(~n <= 0); 543588#L26 call #t~ret0 := fact(~n - 1);< 544812#$Ultimate##0 ~n := #in~n; 544786#L25 assume !(~n <= 0); 543590#L26 call #t~ret0 := fact(~n - 1);< 544536#$Ultimate##0 ~n := #in~n; 544534#L25 assume !(~n <= 0); 543599#L26 call #t~ret0 := fact(~n - 1);< 544507#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546389#factFINAL assume true; 546360#factEXIT >#70#return; 543937#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544180#$Ultimate##0 ~n := #in~n; 545201#L25 assume ~n <= 0;#res := 1; 544179#factFINAL assume true; 543620#factEXIT >#72#return; 544140#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547740#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 547738#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547722#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547597#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 546007#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 545329#$Ultimate##0 ~n := #in~n; 546092#L25 assume !(~n <= 0); 544861#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546098#factFINAL assume true; 546084#factEXIT >#74#return; 545260#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545279#$Ultimate##0 ~n := #in~n; 545280#L25 assume !(~n <= 0); 545207#L26 call #t~ret0 := fact(~n - 1);< 545245#$Ultimate##0 ~n := #in~n; 545206#L25 assume !(~n <= 0); 544514#L26 call #t~ret0 := fact(~n - 1);< 544682#$Ultimate##0 ~n := #in~n; 544533#L25 assume !(~n <= 0); 543596#L26 call #t~ret0 := fact(~n - 1);< 544506#$Ultimate##0 ~n := #in~n; 544496#L25 assume !(~n <= 0); 543587#L26 call #t~ret0 := fact(~n - 1);< 544491#$Ultimate##0 ~n := #in~n; 543619#L25 assume !(~n <= 0); 543614#L26 call #t~ret0 := fact(~n - 1);< 543615#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546164#factFINAL assume true; 546082#factEXIT >#76#return; 545200#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 545203#$Ultimate##0 ~n := #in~n; 545177#L25 assume !(~n <= 0); 544499#L26 call #t~ret0 := fact(~n - 1);< 544504#$Ultimate##0 ~n := #in~n; 544516#L25 assume ~n <= 0;#res := 1; 544508#factFINAL assume true; 544497#factEXIT >#66#return; 544502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546058#factFINAL assume true; 545836#factEXIT >#78#return; 545857#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547595#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547591#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547589#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544906#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544981#$Ultimate##0 ~n := #in~n; 544980#L25 assume !(~n <= 0); 544902#L26 call #t~ret0 := fact(~n - 1);< 544905#$Ultimate##0 ~n := #in~n; 544904#L25 assume !(~n <= 0); 544845#L26 call #t~ret0 := fact(~n - 1);< 544866#$Ultimate##0 ~n := #in~n; 544867#L25 assume !(~n <= 0); 543583#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546164#factFINAL assume true; 546082#factEXIT >#74#return; 545270#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545279#$Ultimate##0 ~n := #in~n; 545280#L25 assume !(~n <= 0); 545207#L26 call #t~ret0 := fact(~n - 1);< 545245#$Ultimate##0 ~n := #in~n; 545206#L25 assume !(~n <= 0); 544514#L26 call #t~ret0 := fact(~n - 1);< 544682#$Ultimate##0 ~n := #in~n; 544533#L25 assume !(~n <= 0); 543596#L26 call #t~ret0 := fact(~n - 1);< 544506#$Ultimate##0 ~n := #in~n; 544496#L25 assume !(~n <= 0); 543587#L26 call #t~ret0 := fact(~n - 1);< 544491#$Ultimate##0 ~n := #in~n; 543619#L25 assume !(~n <= 0); 543614#L26 call #t~ret0 := fact(~n - 1);< 543615#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546164#factFINAL assume true; 546082#factEXIT >#76#return; 543474#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 544546#$Ultimate##0 ~n := #in~n; 544541#L25 assume !(~n <= 0); 543591#L26 call #t~ret0 := fact(~n - 1);< 544537#$Ultimate##0 ~n := #in~n; 544534#L25 assume !(~n <= 0); 543599#L26 call #t~ret0 := fact(~n - 1);< 544507#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#78#return; 543532#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 547549#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 547548#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 547547#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 547545#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 544928#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 544981#$Ultimate##0 ~n := #in~n; 544980#L25 assume !(~n <= 0); 544902#L26 call #t~ret0 := fact(~n - 1);< 544905#$Ultimate##0 ~n := #in~n; 544904#L25 assume !(~n <= 0); 544845#L26 call #t~ret0 := fact(~n - 1);< 544866#$Ultimate##0 ~n := #in~n; 544867#L25 assume !(~n <= 0); 543583#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546127#factFINAL assume true; 546122#factEXIT >#66#return; 546121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546118#factFINAL assume true; 546095#factEXIT >#74#return; 545894#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 545340#$Ultimate##0 ~n := #in~n; 546091#L25 assume !(~n <= 0); 546073#L26 call #t~ret0 := fact(~n - 1);< 545327#$Ultimate##0 ~n := #in~n; 546136#L25 assume !(~n <= 0); 544862#L26 call #t~ret0 := fact(~n - 1);< 544982#$Ultimate##0 ~n := #in~n; 544860#L25 assume !(~n <= 0); 543582#L26 call #t~ret0 := fact(~n - 1);< 543607#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543604#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546119#factFINAL assume true; 546113#factEXIT >#66#return; 546115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546144#factFINAL assume true; 546139#factEXIT >#66#return; 546138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546134#factFINAL assume true; 546129#factEXIT >#66#return; 546128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546127#factFINAL assume true; 546122#factEXIT >#66#return; 546121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 546118#factFINAL assume true; 546095#factEXIT >#76#return; 543339#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 543572#$Ultimate##0 ~n := #in~n; 544843#L25 assume !(~n <= 0); 543601#L26 call #t~ret0 := fact(~n - 1);< 544503#$Ultimate##0 ~n := #in~n; 544844#L25 assume !(~n <= 0); 543594#L26 call #t~ret0 := fact(~n - 1);< 543616#$Ultimate##0 ~n := #in~n; 544181#L25 assume ~n <= 0;#res := 1; 543618#factFINAL assume true; 543613#factEXIT >#66#return; 543611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543609#factFINAL assume true; 543577#factEXIT >#66#return; 543575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 543573#factFINAL assume true; 543268#factEXIT >#78#return; 543542#L30-8 [2023-02-17 09:43:02,131 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:02,131 INFO L85 PathProgramCache]: Analyzing trace with hash 882118662, now seen corresponding path program 42 times [2023-02-17 09:43:02,131 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:02,131 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [891566288] [2023-02-17 09:43:02,132 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:02,132 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:02,160 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:02,161 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1826934720] [2023-02-17 09:43:02,161 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:43:02,161 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:02,161 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:02,163 INFO L229 MonitoredProcess]: Starting monitored process 233 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:02,164 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (233)] Waiting until timeout for monitored process [2023-02-17 09:43:03,096 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 11 check-sat command(s) [2023-02-17 09:43:03,096 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:03,099 INFO L263 TraceCheckSpWp]: Trace formula consists of 483 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:43:03,106 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:03,181 INFO L134 CoverageAnalysis]: Checked inductivity of 149117 backedges. 4962 proven. 171 refuted. 0 times theorem prover too weak. 143984 trivial. 0 not checked. [2023-02-17 09:43:03,181 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:03,326 INFO L134 CoverageAnalysis]: Checked inductivity of 149117 backedges. 4962 proven. 176 refuted. 0 times theorem prover too weak. 143979 trivial. 0 not checked. [2023-02-17 09:43:03,326 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:03,326 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [891566288] [2023-02-17 09:43:03,326 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:03,326 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1826934720] [2023-02-17 09:43:03,327 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1826934720] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:03,327 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:03,327 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 18 [2023-02-17 09:43:03,327 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [653664672] [2023-02-17 09:43:03,327 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:03,327 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:03,328 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:03,328 INFO L85 PathProgramCache]: Analyzing trace with hash 1118493023, now seen corresponding path program 36 times [2023-02-17 09:43:03,328 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:03,328 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [206464804] [2023-02-17 09:43:03,328 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:03,328 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:03,348 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:03,348 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [306826134] [2023-02-17 09:43:03,348 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:43:03,348 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:03,348 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:03,352 INFO L229 MonitoredProcess]: Starting monitored process 234 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:03,353 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (234)] Waiting until timeout for monitored process [2023-02-17 09:43:04,106 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 9 check-sat command(s) [2023-02-17 09:43:04,106 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:04,108 INFO L263 TraceCheckSpWp]: Trace formula consists of 285 conjuncts, 14 conjunts are in the unsatisfiable core [2023-02-17 09:43:04,112 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:04,144 INFO L134 CoverageAnalysis]: Checked inductivity of 42809 backedges. 1590 proven. 13 refuted. 0 times theorem prover too weak. 41206 trivial. 0 not checked. [2023-02-17 09:43:04,144 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:04,212 INFO L134 CoverageAnalysis]: Checked inductivity of 42809 backedges. 1590 proven. 17 refuted. 0 times theorem prover too weak. 41202 trivial. 0 not checked. [2023-02-17 09:43:04,212 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:04,212 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [206464804] [2023-02-17 09:43:04,212 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:04,213 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [306826134] [2023-02-17 09:43:04,213 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [306826134] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:04,213 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:04,213 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 11] total 12 [2023-02-17 09:43:04,213 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [510231738] [2023-02-17 09:43:04,213 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:04,213 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:04,213 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:04,214 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2023-02-17 09:43:04,214 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=118, Unknown=0, NotChecked=0, Total=156 [2023-02-17 09:43:04,214 INFO L87 Difference]: Start difference. First operand 6010 states and 15105 transitions. cyclomatic complexity: 9147 Second operand has 13 states, 11 states have (on average 3.727272727272727) internal successors, (41), 12 states have internal predecessors, (41), 7 states have call successors, (19), 1 states have call predecessors, (19), 4 states have return successors, (20), 7 states have call predecessors, (20), 7 states have call successors, (20) [2023-02-17 09:43:04,400 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:04,401 INFO L93 Difference]: Finished difference Result 5955 states and 15020 transitions. [2023-02-17 09:43:04,401 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5955 states and 15020 transitions. [2023-02-17 09:43:04,448 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 785 [2023-02-17 09:43:04,484 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5955 states to 3995 states and 9334 transitions. [2023-02-17 09:43:04,484 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 661 [2023-02-17 09:43:04,484 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 661 [2023-02-17 09:43:04,484 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3995 states and 9334 transitions. [2023-02-17 09:43:04,485 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:04,485 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3995 states and 9334 transitions. [2023-02-17 09:43:04,486 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3995 states and 9334 transitions. [2023-02-17 09:43:04,550 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3995 to 3995. [2023-02-17 09:43:04,554 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3995 states, 2195 states have (on average 1.0437357630979498) internal successors, (2291), 2180 states have internal predecessors, (2291), 1553 states have call successors, (1590), 320 states have call predecessors, (1590), 247 states have return successors, (5453), 1494 states have call predecessors, (5453), 1553 states have call successors, (5453) [2023-02-17 09:43:04,570 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3995 states to 3995 states and 9334 transitions. [2023-02-17 09:43:04,571 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3995 states and 9334 transitions. [2023-02-17 09:43:04,571 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2023-02-17 09:43:04,571 INFO L428 stractBuchiCegarLoop]: Abstraction has 3995 states and 9334 transitions. [2023-02-17 09:43:04,571 INFO L335 stractBuchiCegarLoop]: ======== Iteration 66 ============ [2023-02-17 09:43:04,571 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3995 states and 9334 transitions. [2023-02-17 09:43:04,584 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 785 [2023-02-17 09:43:04,584 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:04,584 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:04,591 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [306, 306, 219, 219, 219, 219, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:04,591 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [149, 149, 119, 119, 119, 119, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:04,591 INFO L748 eck$LassoCheckResult]: Stem: 568795#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 568744#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 568745#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 568763#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 568796#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 569657#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569655#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569651#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569652#$Ultimate##0 ~n := #in~n; 569656#L25 assume ~n <= 0;#res := 1; 569654#factFINAL assume true; 569650#factEXIT >#68#return; 569646#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 569647#$Ultimate##0 ~n := #in~n; 569653#L25 assume ~n <= 0;#res := 1; 569649#factFINAL assume true; 569645#factEXIT >#70#return; 569642#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 569643#$Ultimate##0 ~n := #in~n; 569648#L25 assume ~n <= 0;#res := 1; 569644#factFINAL assume true; 569641#factEXIT >#72#return; 569640#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 569639#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 569638#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 569637#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569636#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569621#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569622#$Ultimate##0 ~n := #in~n; 569635#L25 assume !(~n <= 0); 569626#L26 call #t~ret0 := fact(~n - 1);< 569628#$Ultimate##0 ~n := #in~n; 569634#L25 assume ~n <= 0;#res := 1; 569633#factFINAL assume true; 569624#factEXIT >#66#return; 569627#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569632#factFINAL assume true; 569620#factEXIT >#74#return; 569618#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 569619#$Ultimate##0 ~n := #in~n; 569631#L25 assume ~n <= 0;#res := 1; 569629#factFINAL assume true; 569617#factEXIT >#76#return; 569610#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 569611#$Ultimate##0 ~n := #in~n; 569630#L25 assume !(~n <= 0); 569625#L26 call #t~ret0 := fact(~n - 1);< 569628#$Ultimate##0 ~n := #in~n; 569634#L25 assume ~n <= 0;#res := 1; 569633#factFINAL assume true; 569624#factEXIT >#66#return; 569616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569615#factFINAL assume true; 569609#factEXIT >#78#return; 569605#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 569604#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 569603#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 569602#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569601#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569559#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569561#$Ultimate##0 ~n := #in~n; 569600#L25 assume !(~n <= 0); 569577#L26 call #t~ret0 := fact(~n - 1);< 569584#$Ultimate##0 ~n := #in~n; 569591#L25 assume !(~n <= 0); 569576#L26 call #t~ret0 := fact(~n - 1);< 569589#$Ultimate##0 ~n := #in~n; 569599#L25 assume ~n <= 0;#res := 1; 569598#factFINAL assume true; 569586#factEXIT >#66#return; 569585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569583#factFINAL assume true; 569575#factEXIT >#66#return; 569579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569623#factFINAL assume true; 569614#factEXIT >#74#return; 569607#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 569608#$Ultimate##0 ~n := #in~n; 569613#L25 assume ~n <= 0;#res := 1; 569612#factFINAL assume true; 569606#factEXIT >#76#return; 569570#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 569571#$Ultimate##0 ~n := #in~n; 569582#L25 assume !(~n <= 0); 569578#L26 call #t~ret0 := fact(~n - 1);< 569581#$Ultimate##0 ~n := #in~n; 569597#L25 assume !(~n <= 0); 569587#L26 call #t~ret0 := fact(~n - 1);< 569588#$Ultimate##0 ~n := #in~n; 569599#L25 assume ~n <= 0;#res := 1; 569598#factFINAL assume true; 569586#factEXIT >#66#return; 569585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569583#factFINAL assume true; 569575#factEXIT >#66#return; 569574#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569573#factFINAL assume true; 569569#factEXIT >#78#return; 569568#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 569567#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 569565#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 569564#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569563#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569560#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569561#$Ultimate##0 ~n := #in~n; 569600#L25 assume !(~n <= 0); 569577#L26 call #t~ret0 := fact(~n - 1);< 569584#$Ultimate##0 ~n := #in~n; 569591#L25 assume !(~n <= 0); 569576#L26 call #t~ret0 := fact(~n - 1);< 569589#$Ultimate##0 ~n := #in~n; 569591#L25 assume !(~n <= 0); 569576#L26 call #t~ret0 := fact(~n - 1);< 569589#$Ultimate##0 ~n := #in~n; 569599#L25 assume ~n <= 0;#res := 1; 569598#factFINAL assume true; 569586#factEXIT >#66#return; 569585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569583#factFINAL assume true; 569575#factEXIT >#66#return; 569580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569596#factFINAL assume true; 569593#factEXIT >#66#return; 569592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569590#factFINAL assume true; 569558#factEXIT >#74#return; 569555#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 569556#$Ultimate##0 ~n := #in~n; 569595#L25 assume ~n <= 0;#res := 1; 569594#factFINAL assume true; 569554#factEXIT >#76#return; 569521#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 569522#$Ultimate##0 ~n := #in~n; 569535#L25 assume !(~n <= 0); 569527#L26 call #t~ret0 := fact(~n - 1);< 569534#$Ultimate##0 ~n := #in~n; 569572#L25 assume !(~n <= 0); 569528#L26 call #t~ret0 := fact(~n - 1);< 569531#$Ultimate##0 ~n := #in~n; 569549#L25 assume !(~n <= 0); 569526#L26 call #t~ret0 := fact(~n - 1);< 569548#$Ultimate##0 ~n := #in~n; 569552#L25 assume ~n <= 0;#res := 1; 569550#factFINAL assume true; 569547#factEXIT >#66#return; 569545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569543#factFINAL assume true; 569541#factEXIT >#66#return; 569540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569539#factFINAL assume true; 569537#factEXIT >#66#return; 569530#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569538#factFINAL assume true; 569520#factEXIT >#78#return; 569517#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 569514#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 569513#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 569512#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569509#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569417#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569418#$Ultimate##0 ~n := #in~n; 569532#L25 assume !(~n <= 0); 569529#L26 call #t~ret0 := fact(~n - 1);< 569531#$Ultimate##0 ~n := #in~n; 569549#L25 assume !(~n <= 0); 569526#L26 call #t~ret0 := fact(~n - 1);< 569548#$Ultimate##0 ~n := #in~n; 569549#L25 assume !(~n <= 0); 569526#L26 call #t~ret0 := fact(~n - 1);< 569548#$Ultimate##0 ~n := #in~n; 569549#L25 assume !(~n <= 0); 569526#L26 call #t~ret0 := fact(~n - 1);< 569548#$Ultimate##0 ~n := #in~n; 569552#L25 assume ~n <= 0;#res := 1; 569550#factFINAL assume true; 569547#factEXIT >#66#return; 569545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569543#factFINAL assume true; 569541#factEXIT >#66#return; 569540#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569539#factFINAL assume true; 569537#factEXIT >#66#return; 569536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569533#factFINAL assume true; 569525#factEXIT >#66#return; 569519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569508#factFINAL assume true; 569416#factEXIT >#74#return; 569414#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 569415#$Ultimate##0 ~n := #in~n; 569428#L25 assume ~n <= 0;#res := 1; 569427#factFINAL assume true; 569413#factEXIT >#76#return; 569405#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 569409#$Ultimate##0 ~n := #in~n; 569407#L25 assume !(~n <= 0); 569375#L26 call #t~ret0 := fact(~n - 1);< 569406#$Ultimate##0 ~n := #in~n; 569551#L25 assume !(~n <= 0); 569377#L26 call #t~ret0 := fact(~n - 1);< 569411#$Ultimate##0 ~n := #in~n; 569542#L25 assume !(~n <= 0); 569380#L26 call #t~ret0 := fact(~n - 1);< 569524#$Ultimate##0 ~n := #in~n; 569542#L25 assume !(~n <= 0); 569380#L26 call #t~ret0 := fact(~n - 1);< 569524#$Ultimate##0 ~n := #in~n; 569546#L25 assume ~n <= 0;#res := 1; 569544#factFINAL assume true; 569523#factEXIT >#66#return; 569518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569516#factFINAL assume true; 569511#factEXIT >#66#return; 569507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569506#factFINAL assume true; 569410#factEXIT >#66#return; 569408#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569404#factFINAL assume true; 569396#factEXIT >#66#return; 569397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569457#factFINAL assume true; 569456#factEXIT >#78#return; 569120#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 569119#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 569117#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 569118#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569680#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568959#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568960#$Ultimate##0 ~n := #in~n; 569012#L25 assume !(~n <= 0); 569009#L26 call #t~ret0 := fact(~n - 1);< 569010#$Ultimate##0 ~n := #in~n; 569020#L25 assume !(~n <= 0); 569017#L26 call #t~ret0 := fact(~n - 1);< 569018#$Ultimate##0 ~n := #in~n; 569037#L25 assume !(~n <= 0); 569034#L26 call #t~ret0 := fact(~n - 1);< 569036#$Ultimate##0 ~n := #in~n; 569045#L25 assume !(~n <= 0); 569035#L26 call #t~ret0 := fact(~n - 1);< 569043#$Ultimate##0 ~n := #in~n; 569045#L25 assume !(~n <= 0); 569035#L26 call #t~ret0 := fact(~n - 1);< 569043#$Ultimate##0 ~n := #in~n; 569058#L25 assume ~n <= 0;#res := 1; 569057#factFINAL assume true; 569055#factEXIT >#66#return; 569053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569051#factFINAL assume true; 569042#factEXIT >#66#return; 569040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569039#factFINAL assume true; 569033#factEXIT >#66#return; 569031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569028#factFINAL assume true; 569016#factEXIT >#66#return; 569014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569013#factFINAL assume true; 569008#factEXIT >#66#return; 569004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569002#factFINAL assume true; 568958#factEXIT >#74#return; 568955#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568956#$Ultimate##0 ~n := #in~n; 568985#L25 assume ~n <= 0;#res := 1; 568984#factFINAL assume true; 568954#factEXIT >#76#return; 568882#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568953#$Ultimate##0 ~n := #in~n; 568945#L25 assume !(~n <= 0); 568900#L26 call #t~ret0 := fact(~n - 1);< 568941#$Ultimate##0 ~n := #in~n; 568983#L25 assume !(~n <= 0); 568902#L26 call #t~ret0 := fact(~n - 1);< 568952#$Ultimate##0 ~n := #in~n; 569107#L25 assume !(~n <= 0); 568905#L26 call #t~ret0 := fact(~n - 1);< 568975#$Ultimate##0 ~n := #in~n; 569038#L25 assume !(~n <= 0); 568911#L26 call #t~ret0 := fact(~n - 1);< 568935#$Ultimate##0 ~n := #in~n; 568990#L25 assume !(~n <= 0); 568913#L26 call #t~ret0 := fact(~n - 1);< 568989#$Ultimate##0 ~n := #in~n; 568992#L25 assume ~n <= 0;#res := 1; 568991#factFINAL assume true; 568988#factEXIT >#66#return; 568987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568986#factFINAL assume true; 568980#factEXIT >#66#return; 568978#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568977#factFINAL assume true; 568974#factEXIT >#66#return; 568973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568971#factFINAL assume true; 568951#factEXIT >#66#return; 568944#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 568943#factFINAL assume true; 568940#factEXIT >#66#return; 568914#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569127#factFINAL assume true; 568881#factEXIT >#78#return; 568883#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571322#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571320#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571319#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 571316#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 571304#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 571303#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571301#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 571231#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571294#$Ultimate##0 ~n := #in~n; 571312#L25 assume !(~n <= 0); 571310#L26 call #t~ret0 := fact(~n - 1);< 571311#$Ultimate##0 ~n := #in~n; 571315#L25 assume ~n <= 0;#res := 1; 571314#factFINAL assume true; 571309#factEXIT >#66#return; 571300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571299#factFINAL assume true; 571293#factEXIT >#68#return; 571247#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571284#$Ultimate##0 ~n := #in~n; 571344#L25 assume ~n <= 0;#res := 1; 571313#factFINAL assume true; 571217#factEXIT >#70#return; 571214#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571215#$Ultimate##0 ~n := #in~n; 571416#L25 assume !(~n <= 0); 568775#L26 call #t~ret0 := fact(~n - 1);< 571398#$Ultimate##0 ~n := #in~n; 568774#L25 assume ~n <= 0;#res := 1; 568776#factFINAL assume true; 571397#factEXIT >#66#return; 571346#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571341#factFINAL assume true; 571213#factEXIT >#72#return; 571212#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571210#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 571209#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571208#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571207#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 571105#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571178#$Ultimate##0 ~n := #in~n; 571298#L25 assume !(~n <= 0); 570295#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571211#factFINAL assume true; 571197#factEXIT >#68#return; 571198#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571205#$Ultimate##0 ~n := #in~n; 571297#L25 assume !(~n <= 0); 571286#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571211#factFINAL assume true; 571197#factEXIT >#70#return; 570913#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571195#$Ultimate##0 ~n := #in~n; 571347#L25 assume ~n <= 0;#res := 1; 570739#factFINAL assume true; 570858#factEXIT >#72#return; 571026#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571192#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 571191#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571190#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571188#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568702#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568703#$Ultimate##0 ~n := #in~n; 571306#L25 assume !(~n <= 0); 570301#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#74#return; 570253#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568793#$Ultimate##0 ~n := #in~n; 571387#L25 assume !(~n <= 0); 571287#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#76#return; 570267#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568793#$Ultimate##0 ~n := #in~n; 571387#L25 assume !(~n <= 0); 571287#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#78#return; 570283#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 570719#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 570718#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 570717#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 570716#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570117#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570242#$Ultimate##0 ~n := #in~n; 571376#L25 assume !(~n <= 0); 570290#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570418#factFINAL assume true; 570372#factEXIT >#74#return; 570249#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568793#$Ultimate##0 ~n := #in~n; 571387#L25 assume !(~n <= 0); 571287#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#76#return; 570250#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570451#$Ultimate##0 ~n := #in~n; 571196#L25 assume !(~n <= 0); 570467#L26 call #t~ret0 := fact(~n - 1);< 570750#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#78#return; 570438#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 570436#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 570434#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 570433#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 570432#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570133#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570242#$Ultimate##0 ~n := #in~n; 571376#L25 assume !(~n <= 0); 570290#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#74#return; 570226#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568793#$Ultimate##0 ~n := #in~n; 571387#L25 assume !(~n <= 0); 571287#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#76#return; 570127#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570000#$Ultimate##0 ~n := #in~n; 571334#L25 assume !(~n <= 0); 570362#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570418#factFINAL assume true; 570372#factEXIT >#78#return; 570356#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 570353#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 570348#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 570327#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 570325#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569773#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#74#return; 570258#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568793#$Ultimate##0 ~n := #in~n; 571387#L25 assume !(~n <= 0); 571287#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#76#return; 569999#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570000#$Ultimate##0 ~n := #in~n; 571334#L25 assume !(~n <= 0); 570362#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#78#return; 569721#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 569719#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 569718#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 569716#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 569711#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569155#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569705#$Ultimate##0 ~n := #in~n; 570073#L25 assume !(~n <= 0); 570007#L26 call #t~ret0 := fact(~n - 1);< 570072#$Ultimate##0 ~n := #in~n; 570092#L25 assume !(~n <= 0); 570018#L26 call #t~ret0 := fact(~n - 1);< 570091#$Ultimate##0 ~n := #in~n; 570089#L25 assume !(~n <= 0); 570011#L26 call #t~ret0 := fact(~n - 1);< 570036#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570040#factFINAL assume true; 570034#factEXIT >#66#return; 570033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570029#factFINAL assume true; 570022#factEXIT >#66#return; 570023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570071#factFINAL assume true; 570055#factEXIT >#66#return; 570056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569139#factFINAL assume true; 569156#factEXIT >#74#return; 568790#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568791#$Ultimate##0 ~n := #in~n; 570052#L25 assume !(~n <= 0); 570043#L26 call #t~ret0 := fact(~n - 1);< 570044#$Ultimate##0 ~n := #in~n; 570051#L25 assume ~n <= 0;#res := 1; 570050#factFINAL assume true; 570042#factEXIT >#66#return; 570037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570025#factFINAL assume true; 569714#factEXIT >#76#return; 568868#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570081#$Ultimate##0 ~n := #in~n; 570080#L25 assume !(~n <= 0); 570005#L26 call #t~ret0 := fact(~n - 1);< 570054#$Ultimate##0 ~n := #in~n; 570074#L25 assume !(~n <= 0); 570017#L26 call #t~ret0 := fact(~n - 1);< 570036#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570040#factFINAL assume true; 570034#factEXIT >#66#return; 570033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570029#factFINAL assume true; 570022#factEXIT >#66#return; 570023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570071#factFINAL assume true; 570055#factEXIT >#66#return; 570056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569139#factFINAL assume true; 569156#factEXIT >#78#return; 568879#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 568764#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 568765#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 568794#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 568762#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 568756#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 568757#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 568767#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568739#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568740#$Ultimate##0 ~n := #in~n; 571658#L25 assume !(~n <= 0); 571479#L26 call #t~ret0 := fact(~n - 1);< 571657#$Ultimate##0 ~n := #in~n; 571318#L25 assume !(~n <= 0); 571478#L26 call #t~ret0 := fact(~n - 1);< 571663#$Ultimate##0 ~n := #in~n; 571739#L25 assume ~n <= 0;#res := 1; 571738#factFINAL assume true; 571662#factEXIT >#66#return; 571660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571656#factFINAL assume true; 571652#factEXIT >#66#return; 571653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571752#factFINAL assume true; 571744#factEXIT >#68#return; 571251#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571284#$Ultimate##0 ~n := #in~n; 571344#L25 assume ~n <= 0;#res := 1; 571313#factFINAL assume true; 571217#factEXIT >#70#return; 571283#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571524#$Ultimate##0 ~n := #in~n; 571612#L25 assume !(~n <= 0); 571569#L26 call #t~ret0 := fact(~n - 1);< 571572#$Ultimate##0 ~n := #in~n; 571615#L25 assume !(~n <= 0); 571581#L26 call #t~ret0 := fact(~n - 1);< 571584#$Ultimate##0 ~n := #in~n; 571610#L25 assume ~n <= 0;#res := 1; 571609#factFINAL assume true; 571580#factEXIT >#66#return; 571578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571575#factFINAL assume true; 571563#factEXIT >#66#return; 571555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571539#factFINAL assume true; 571518#factEXIT >#72#return; 568758#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 568759#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 568770#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 568772#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 568773#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570821#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571336#$Ultimate##0 ~n := #in~n; 571335#L25 assume !(~n <= 0); 570297#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571417#factFINAL assume true; 571400#factEXIT >#68#return; 570495#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568783#$Ultimate##0 ~n := #in~n; 571324#L25 assume !(~n <= 0); 570330#L26 call #t~ret0 := fact(~n - 1);< 570624#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571211#factFINAL assume true; 571197#factEXIT >#70#return; 570959#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571388#$Ultimate##0 ~n := #in~n; 571386#L25 assume !(~n <= 0); 571288#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571753#factFINAL assume true; 571725#factEXIT >#72#return; 571734#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572519#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572518#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572517#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572516#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570840#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571336#$Ultimate##0 ~n := #in~n; 571335#L25 assume !(~n <= 0); 570297#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571417#factFINAL assume true; 571400#factEXIT >#68#return; 570503#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568783#$Ultimate##0 ~n := #in~n; 571324#L25 assume !(~n <= 0); 570330#L26 call #t~ret0 := fact(~n - 1);< 570624#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571417#factFINAL assume true; 571400#factEXIT >#70#return; 570961#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571388#$Ultimate##0 ~n := #in~n; 571386#L25 assume ~n <= 0;#res := 1; 570739#factFINAL assume true; 570858#factEXIT >#72#return; 571051#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571831#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 571830#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571828#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571826#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570168#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570242#$Ultimate##0 ~n := #in~n; 571376#L25 assume !(~n <= 0); 570290#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570418#factFINAL assume true; 570372#factEXIT >#74#return; 570167#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570419#$Ultimate##0 ~n := #in~n; 570735#L25 assume !(~n <= 0); 570329#L26 call #t~ret0 := fact(~n - 1);< 570474#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#76#return; 570254#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570451#$Ultimate##0 ~n := #in~n; 571196#L25 assume !(~n <= 0); 570467#L26 call #t~ret0 := fact(~n - 1);< 570750#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#78#return; 570277#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571838#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571836#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571834#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571829#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570171#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570242#$Ultimate##0 ~n := #in~n; 571376#L25 assume !(~n <= 0); 570290#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#74#return; 570173#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570419#$Ultimate##0 ~n := #in~n; 570735#L25 assume !(~n <= 0); 570329#L26 call #t~ret0 := fact(~n - 1);< 570474#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#76#return; 570255#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570451#$Ultimate##0 ~n := #in~n; 571196#L25 assume !(~n <= 0); 570467#L26 call #t~ret0 := fact(~n - 1);< 570750#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#78#return; 570450#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571821#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571820#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571819#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571818#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569944#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#74#return; 570179#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570419#$Ultimate##0 ~n := #in~n; 570735#L25 assume !(~n <= 0); 570329#L26 call #t~ret0 := fact(~n - 1);< 570474#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#76#return; 570181#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570000#$Ultimate##0 ~n := #in~n; 571334#L25 assume !(~n <= 0); 570362#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570418#factFINAL assume true; 570372#factEXIT >#78#return; 570233#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571817#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571816#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571815#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571814#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569945#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#74#return; 570191#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570419#$Ultimate##0 ~n := #in~n; 570735#L25 assume !(~n <= 0); 570329#L26 call #t~ret0 := fact(~n - 1);< 570474#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570733#L25 assume !(~n <= 0); 570424#L26 call #t~ret0 := fact(~n - 1);< 570732#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570418#factFINAL assume true; 570372#factEXIT >#76#return; 570212#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570744#$Ultimate##0 ~n := #in~n; 570743#L25 assume !(~n <= 0); 570364#L26 call #t~ret0 := fact(~n - 1);< 570655#$Ultimate##0 ~n := #in~n; 570733#L25 assume !(~n <= 0); 570424#L26 call #t~ret0 := fact(~n - 1);< 570732#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#78#return; 569985#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571974#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571972#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571970#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571968#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569141#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569705#$Ultimate##0 ~n := #in~n; 570073#L25 assume !(~n <= 0); 570007#L26 call #t~ret0 := fact(~n - 1);< 570072#$Ultimate##0 ~n := #in~n; 570092#L25 assume !(~n <= 0); 570018#L26 call #t~ret0 := fact(~n - 1);< 570091#$Ultimate##0 ~n := #in~n; 570089#L25 assume !(~n <= 0); 570011#L26 call #t~ret0 := fact(~n - 1);< 570036#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570040#factFINAL assume true; 570034#factEXIT >#66#return; 570033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570029#factFINAL assume true; 570022#factEXIT >#66#return; 570023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570071#factFINAL assume true; 570055#factEXIT >#66#return; 570045#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570038#factFINAL assume true; 570031#factEXIT >#66#return; 570032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570093#factFINAL assume true; 569703#factEXIT >#74#return; 568823#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 569157#$Ultimate##0 ~n := #in~n; 570082#L25 assume !(~n <= 0); 570014#L26 call #t~ret0 := fact(~n - 1);< 570054#$Ultimate##0 ~n := #in~n; 570074#L25 assume !(~n <= 0); 570017#L26 call #t~ret0 := fact(~n - 1);< 570036#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571756#factFINAL assume true; 571669#factEXIT >#76#return; 568811#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570062#$Ultimate##0 ~n := #in~n; 570061#L25 assume !(~n <= 0); 570003#L26 call #t~ret0 := fact(~n - 1);< 570041#$Ultimate##0 ~n := #in~n; 570084#L25 assume !(~n <= 0); 570016#L26 call #t~ret0 := fact(~n - 1);< 570049#$Ultimate##0 ~n := #in~n; 570074#L25 assume !(~n <= 0); 570017#L26 call #t~ret0 := fact(~n - 1);< 570036#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570040#factFINAL assume true; 570034#factEXIT >#66#return; 570033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570029#factFINAL assume true; 570022#factEXIT >#66#return; 570023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570071#factFINAL assume true; 570055#factEXIT >#66#return; 570056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569139#factFINAL assume true; 569156#factEXIT >#78#return; 568872#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571893#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571871#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571870#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 571869#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 571851#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 571843#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571832#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 571467#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 568740#$Ultimate##0 ~n := #in~n; 571658#L25 assume !(~n <= 0); 571479#L26 call #t~ret0 := fact(~n - 1);< 571657#$Ultimate##0 ~n := #in~n; 571318#L25 assume !(~n <= 0); 571478#L26 call #t~ret0 := fact(~n - 1);< 571663#$Ultimate##0 ~n := #in~n; 571739#L25 assume ~n <= 0;#res := 1; 571738#factFINAL assume true; 571662#factEXIT >#66#return; 571660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571656#factFINAL assume true; 571652#factEXIT >#66#return; 571653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571752#factFINAL assume true; 571744#factEXIT >#68#return; 571229#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571284#$Ultimate##0 ~n := #in~n; 571344#L25 assume ~n <= 0;#res := 1; 571313#factFINAL assume true; 571217#factEXIT >#70#return; 571263#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571525#$Ultimate##0 ~n := #in~n; 571916#L25 assume !(~n <= 0); 571902#L26 call #t~ret0 := fact(~n - 1);< 571912#$Ultimate##0 ~n := #in~n; 571924#L25 assume !(~n <= 0); 571920#L26 call #t~ret0 := fact(~n - 1);< 571922#$Ultimate##0 ~n := #in~n; 571925#L25 assume ~n <= 0;#res := 1; 571923#factFINAL assume true; 571919#factEXIT >#66#return; 571918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571913#factFINAL assume true; 571901#factEXIT >#66#return; 571899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571897#factFINAL assume true; 571887#factEXIT >#72#return; 571891#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572534#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572532#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572530#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572529#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 568720#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571855#$Ultimate##0 ~n := #in~n; 571862#L25 assume !(~n <= 0); 568728#L26 call #t~ret0 := fact(~n - 1);< 571860#$Ultimate##0 ~n := #in~n; 571875#L25 assume !(~n <= 0); 568731#L26 call #t~ret0 := fact(~n - 1);< 571865#$Ultimate##0 ~n := #in~n; 571876#L25 assume ~n <= 0;#res := 1; 571866#factFINAL assume true; 571864#factEXIT >#66#return; 571863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571861#factFINAL assume true; 571858#factEXIT >#66#return; 571857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571856#factFINAL assume true; 571854#factEXIT >#68#return; 571375#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568781#$Ultimate##0 ~n := #in~n; 571378#L25 assume ~n <= 0;#res := 1; 571377#factFINAL assume true; 571351#factEXIT >#70#return; 570489#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571390#$Ultimate##0 ~n := #in~n; 571380#L25 assume !(~n <= 0); 570466#L26 call #t~ret0 := fact(~n - 1);< 570477#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571849#factFINAL assume true; 571845#factEXIT >#72#return; 571731#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572672#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572670#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572668#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572666#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570842#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571336#$Ultimate##0 ~n := #in~n; 571335#L25 assume !(~n <= 0); 570297#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572481#factFINAL assume true; 571399#factEXIT >#68#return; 568782#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568783#$Ultimate##0 ~n := #in~n; 571324#L25 assume !(~n <= 0); 570330#L26 call #t~ret0 := fact(~n - 1);< 570624#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571417#factFINAL assume true; 571400#factEXIT >#70#return; 570863#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571317#$Ultimate##0 ~n := #in~n; 571305#L25 assume ~n <= 0;#res := 1; 570739#factFINAL assume true; 570858#factEXIT >#72#return; 571005#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572686#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572684#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572682#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572680#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570781#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571337#$Ultimate##0 ~n := #in~n; 570849#L25 assume !(~n <= 0); 570310#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572175#factFINAL assume true; 572174#factEXIT >#68#return; 571112#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571178#$Ultimate##0 ~n := #in~n; 571298#L25 assume !(~n <= 0); 570295#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570480#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572175#factFINAL assume true; 572174#factEXIT >#70#return; 570670#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571383#$Ultimate##0 ~n := #in~n; 571381#L25 assume ~n <= 0;#res := 1; 570739#factFINAL assume true; 570858#factEXIT >#72#return; 571020#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572678#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572676#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572674#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572673#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569885#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570243#$Ultimate##0 ~n := #in~n; 570658#L25 assume !(~n <= 0); 570289#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#74#return; 570163#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570244#$Ultimate##0 ~n := #in~n; 570811#L25 assume !(~n <= 0); 570335#L26 call #t~ret0 := fact(~n - 1);< 570346#$Ultimate##0 ~n := #in~n; 570656#L25 assume !(~n <= 0); 570365#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#76#return; 568799#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568793#$Ultimate##0 ~n := #in~n; 571387#L25 assume !(~n <= 0); 571287#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#78#return; 568748#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 568749#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 568766#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572641#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572490#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569959#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#74#return; 570213#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570244#$Ultimate##0 ~n := #in~n; 570811#L25 assume !(~n <= 0); 570335#L26 call #t~ret0 := fact(~n - 1);< 570346#$Ultimate##0 ~n := #in~n; 570656#L25 assume !(~n <= 0); 570365#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#76#return; 570115#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570744#$Ultimate##0 ~n := #in~n; 570743#L25 assume !(~n <= 0); 570364#L26 call #t~ret0 := fact(~n - 1);< 570655#$Ultimate##0 ~n := #in~n; 570733#L25 assume !(~n <= 0); 570424#L26 call #t~ret0 := fact(~n - 1);< 570732#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#78#return; 570441#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572595#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 572593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572592#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572591#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569761#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#74#return; 570141#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570244#$Ultimate##0 ~n := #in~n; 570811#L25 assume !(~n <= 0); 570335#L26 call #t~ret0 := fact(~n - 1);< 570346#$Ultimate##0 ~n := #in~n; 570656#L25 assume !(~n <= 0); 570365#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#76#return; 570126#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570744#$Ultimate##0 ~n := #in~n; 570743#L25 assume !(~n <= 0); 570364#L26 call #t~ret0 := fact(~n - 1);< 570655#$Ultimate##0 ~n := #in~n; 570733#L25 assume !(~n <= 0); 570424#L26 call #t~ret0 := fact(~n - 1);< 570732#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570418#factFINAL assume true; 570372#factEXIT >#78#return; 570223#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572063#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 572062#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572061#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572060#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569795#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570820#factFINAL assume true; 570804#factEXIT >#66#return; 570317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571342#factFINAL assume true; 570288#factEXIT >#66#return; 570240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570110#factFINAL assume true; 570102#factEXIT >#74#return; 569825#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570101#$Ultimate##0 ~n := #in~n; 570846#L25 assume !(~n <= 0); 570296#L26 call #t~ret0 := fact(~n - 1);< 570374#$Ultimate##0 ~n := #in~n; 570852#L25 assume !(~n <= 0); 570299#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570820#factFINAL assume true; 570804#factEXIT >#66#return; 570317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571342#factFINAL assume true; 570288#factEXIT >#66#return; 570240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570110#factFINAL assume true; 570102#factEXIT >#76#return; 569842#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568703#$Ultimate##0 ~n := #in~n; 571306#L25 assume !(~n <= 0); 570301#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#78#return; 569993#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572016#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 572017#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572012#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569151#L30-5 [2023-02-17 09:43:04,592 INFO L750 eck$LassoCheckResult]: Loop: 569151#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 569705#$Ultimate##0 ~n := #in~n; 570073#L25 assume !(~n <= 0); 570007#L26 call #t~ret0 := fact(~n - 1);< 570072#$Ultimate##0 ~n := #in~n; 570092#L25 assume !(~n <= 0); 570018#L26 call #t~ret0 := fact(~n - 1);< 570091#$Ultimate##0 ~n := #in~n; 570089#L25 assume !(~n <= 0); 570011#L26 call #t~ret0 := fact(~n - 1);< 570036#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570040#factFINAL assume true; 570034#factEXIT >#66#return; 570033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570029#factFINAL assume true; 570022#factEXIT >#66#return; 570023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570071#factFINAL assume true; 570055#factEXIT >#66#return; 570056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569139#factFINAL assume true; 569156#factEXIT >#74#return; 568822#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570062#$Ultimate##0 ~n := #in~n; 570061#L25 assume !(~n <= 0); 570003#L26 call #t~ret0 := fact(~n - 1);< 570041#$Ultimate##0 ~n := #in~n; 570084#L25 assume !(~n <= 0); 570016#L26 call #t~ret0 := fact(~n - 1);< 570049#$Ultimate##0 ~n := #in~n; 570074#L25 assume !(~n <= 0); 570017#L26 call #t~ret0 := fact(~n - 1);< 570036#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570040#factFINAL assume true; 570034#factEXIT >#66#return; 570033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570029#factFINAL assume true; 570022#factEXIT >#66#return; 569713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569708#factFINAL assume true; 568800#factEXIT >#76#return; 568842#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570079#$Ultimate##0 ~n := #in~n; 570078#L25 assume !(~n <= 0); 570004#L26 call #t~ret0 := fact(~n - 1);< 570076#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570075#L25 assume !(~n <= 0); 570015#L26 call #t~ret0 := fact(~n - 1);< 570070#$Ultimate##0 ~n := #in~n; 570088#L25 assume ~n <= 0;#res := 1; 570086#factFINAL assume true; 570069#factEXIT >#66#return; 570068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570063#factFINAL assume true; 570059#factEXIT >#66#return; 570058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570053#factFINAL assume true; 570047#factEXIT >#66#return; 570046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570040#factFINAL assume true; 570034#factEXIT >#66#return; 570033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570029#factFINAL assume true; 570022#factEXIT >#66#return; 569713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 569708#factFINAL assume true; 568800#factEXIT >#78#return; 568876#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 571977#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 571976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 571975#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 571966#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 571853#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 571850#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 571822#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 571469#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571497#$Ultimate##0 ~n := #in~n; 571495#L25 assume !(~n <= 0); 571480#L26 call #t~ret0 := fact(~n - 1);< 571492#$Ultimate##0 ~n := #in~n; 571755#L25 assume !(~n <= 0); 571482#L26 call #t~ret0 := fact(~n - 1);< 571654#$Ultimate##0 ~n := #in~n; 571318#L25 assume !(~n <= 0); 571478#L26 call #t~ret0 := fact(~n - 1);< 571663#$Ultimate##0 ~n := #in~n; 571318#L25 assume !(~n <= 0); 571478#L26 call #t~ret0 := fact(~n - 1);< 571663#$Ultimate##0 ~n := #in~n; 571318#L25 assume !(~n <= 0); 571478#L26 call #t~ret0 := fact(~n - 1);< 571663#$Ultimate##0 ~n := #in~n; 571318#L25 assume !(~n <= 0); 571478#L26 call #t~ret0 := fact(~n - 1);< 571663#$Ultimate##0 ~n := #in~n; 571318#L25 assume !(~n <= 0); 571478#L26 call #t~ret0 := fact(~n - 1);< 571663#$Ultimate##0 ~n := #in~n; 571739#L25 assume ~n <= 0;#res := 1; 571738#factFINAL assume true; 571662#factEXIT >#66#return; 571660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571656#factFINAL assume true; 571652#factEXIT >#66#return; 571649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571646#factFINAL assume true; 571640#factEXIT >#66#return; 571638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571637#factFINAL assume true; 571618#factEXIT >#66#return; 571614#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571573#factFINAL assume true; 571556#factEXIT >#66#return; 571541#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571540#factFINAL assume true; 571533#factEXIT >#66#return; 571493#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571491#factFINAL assume true; 571489#factEXIT >#66#return; 571490#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571538#factFINAL assume true; 571516#factEXIT >#68#return; 571228#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571294#$Ultimate##0 ~n := #in~n; 571312#L25 assume ~n <= 0;#res := 1; 571313#factFINAL assume true; 571217#factEXIT >#70#return; 571262#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571508#$Ultimate##0 ~n := #in~n; 571596#L25 assume !(~n <= 0); 571545#L26 call #t~ret0 := fact(~n - 1);< 571562#$Ultimate##0 ~n := #in~n; 571613#L25 assume !(~n <= 0); 571543#L26 call #t~ret0 := fact(~n - 1);< 571590#$Ultimate##0 ~n := #in~n; 571608#L25 assume !(~n <= 0); 571548#L26 call #t~ret0 := fact(~n - 1);< 571606#$Ultimate##0 ~n := #in~n; 571600#L25 assume !(~n <= 0); 571546#L26 call #t~ret0 := fact(~n - 1);< 571598#$Ultimate##0 ~n := #in~n; 571597#L25 assume !(~n <= 0); 571551#L26 call #t~ret0 := fact(~n - 1);< 571593#$Ultimate##0 ~n := #in~n; 571592#L25 assume !(~n <= 0); 571550#L26 call #t~ret0 := fact(~n - 1);< 571576#$Ultimate##0 ~n := #in~n; 571611#L25 assume !(~n <= 0); 571547#L26 call #t~ret0 := fact(~n - 1);< 571583#$Ultimate##0 ~n := #in~n; 571611#L25 assume !(~n <= 0); 571547#L26 call #t~ret0 := fact(~n - 1);< 571583#$Ultimate##0 ~n := #in~n; 571610#L25 assume ~n <= 0;#res := 1; 571609#factFINAL assume true; 571580#factEXIT >#66#return; 571578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571575#factFINAL assume true; 571563#factEXIT >#66#return; 571571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571700#factFINAL assume true; 571651#factEXIT >#66#return; 571648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571645#factFINAL assume true; 571628#factEXIT >#66#return; 571626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571616#factFINAL assume true; 571601#factEXIT >#66#return; 571599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571594#factFINAL assume true; 571585#factEXIT >#66#return; 571579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571577#factFINAL assume true; 571561#factEXIT >#66#return; 571552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571559#factFINAL assume true; 571542#factEXIT >#66#return; 571537#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571511#factFINAL assume true; 571452#factEXIT >#72#return; 571457#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572438#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572437#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572435#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572433#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570780#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571337#$Ultimate##0 ~n := #in~n; 570849#L25 assume !(~n <= 0); 570310#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570367#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572095#factFINAL assume true; 572093#factEXIT >#68#return; 570509#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568783#$Ultimate##0 ~n := #in~n; 571324#L25 assume !(~n <= 0); 570330#L26 call #t~ret0 := fact(~n - 1);< 570624#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571211#factFINAL assume true; 571197#factEXIT >#70#return; 570379#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570819#$Ultimate##0 ~n := #in~n; 570818#L25 assume !(~n <= 0); 570361#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570428#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572190#factFINAL assume true; 572170#factEXIT >#72#return; 571429#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572375#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572373#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572371#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572369#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570784#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571337#$Ultimate##0 ~n := #in~n; 570849#L25 assume !(~n <= 0); 570310#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570367#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572095#factFINAL assume true; 572093#factEXIT >#68#return; 570606#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568783#$Ultimate##0 ~n := #in~n; 571324#L25 assume !(~n <= 0); 570330#L26 call #t~ret0 := fact(~n - 1);< 570624#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571417#factFINAL assume true; 571400#factEXIT >#70#return; 570944#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571317#$Ultimate##0 ~n := #in~n; 571305#L25 assume ~n <= 0;#res := 1; 570739#factFINAL assume true; 570858#factEXIT >#72#return; 571039#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572367#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572366#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572364#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572362#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570797#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571337#$Ultimate##0 ~n := #in~n; 570849#L25 assume !(~n <= 0); 570310#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570820#factFINAL assume true; 570804#factEXIT >#66#return; 570806#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572603#factFINAL assume true; 571069#factEXIT >#68#return; 571140#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 571178#$Ultimate##0 ~n := #in~n; 571298#L25 assume !(~n <= 0); 570295#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570820#factFINAL assume true; 570804#factEXIT >#66#return; 570317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571342#factFINAL assume true; 570288#factEXIT >#66#return; 570318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571187#factFINAL assume true; 571179#factEXIT >#70#return; 570866#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571068#$Ultimate##0 ~n := #in~n; 571308#L25 assume !(~n <= 0); 570311#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571753#factFINAL assume true; 571725#factEXIT >#72#return; 571027#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572679#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572677#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572675#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572470#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 570759#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 571337#$Ultimate##0 ~n := #in~n; 570849#L25 assume !(~n <= 0); 570310#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570367#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 572095#factFINAL assume true; 572093#factEXIT >#68#return; 570504#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 568783#$Ultimate##0 ~n := #in~n; 571324#L25 assume !(~n <= 0); 570330#L26 call #t~ret0 := fact(~n - 1);< 570624#$Ultimate##0 ~n := #in~n; 571206#L25 assume !(~n <= 0); 570358#L26 call #t~ret0 := fact(~n - 1);< 570728#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571417#factFINAL assume true; 571400#factEXIT >#70#return; 570968#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 571317#$Ultimate##0 ~n := #in~n; 571305#L25 assume ~n <= 0;#res := 1; 570739#factFINAL assume true; 570858#factEXIT >#72#return; 571052#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572458#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 572456#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572454#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572453#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569952#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570243#$Ultimate##0 ~n := #in~n; 570658#L25 assume !(~n <= 0); 570289#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#74#return; 570204#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570244#$Ultimate##0 ~n := #in~n; 570811#L25 assume !(~n <= 0); 570335#L26 call #t~ret0 := fact(~n - 1);< 570346#$Ultimate##0 ~n := #in~n; 570656#L25 assume !(~n <= 0); 570365#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#76#return; 570239#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568793#$Ultimate##0 ~n := #in~n; 571387#L25 assume !(~n <= 0); 571287#L26 call #t~ret0 := fact(~n - 1);< 571291#$Ultimate##0 ~n := #in~n; 571302#L25 assume ~n <= 0;#res := 1; 571296#factFINAL assume true; 571285#factEXIT >#66#return; 571290#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 571340#factFINAL assume true; 570246#factEXIT >#78#return; 570284#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572613#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 572611#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572610#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572609#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569763#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570422#factFINAL assume true; 569723#factEXIT >#74#return; 569807#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570101#$Ultimate##0 ~n := #in~n; 570846#L25 assume !(~n <= 0); 570296#L26 call #t~ret0 := fact(~n - 1);< 570374#$Ultimate##0 ~n := #in~n; 570852#L25 assume !(~n <= 0); 570299#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570422#factFINAL assume true; 569723#factEXIT >#76#return; 569829#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568703#$Ultimate##0 ~n := #in~n; 571306#L25 assume !(~n <= 0); 570301#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570483#factFINAL assume true; 570440#factEXIT >#78#return; 570441#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572595#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 572593#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572592#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572591#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569761#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570326#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570324#factFINAL assume true; 570323#factEXIT >#74#return; 570141#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570244#$Ultimate##0 ~n := #in~n; 570811#L25 assume !(~n <= 0); 570335#L26 call #t~ret0 := fact(~n - 1);< 570346#$Ultimate##0 ~n := #in~n; 570656#L25 assume !(~n <= 0); 570365#L26 call #t~ret0 := fact(~n - 1);< 570396#$Ultimate##0 ~n := #in~n; 571332#L25 assume !(~n <= 0); 570425#L26 call #t~ret0 := fact(~n - 1);< 570475#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#76#return; 570126#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 570744#$Ultimate##0 ~n := #in~n; 570743#L25 assume !(~n <= 0); 570364#L26 call #t~ret0 := fact(~n - 1);< 570655#$Ultimate##0 ~n := #in~n; 570733#L25 assume !(~n <= 0); 570424#L26 call #t~ret0 := fact(~n - 1);< 570732#$Ultimate##0 ~n := #in~n; 570734#L25 assume !(~n <= 0); 570465#L26 call #t~ret0 := fact(~n - 1);< 570731#$Ultimate##0 ~n := #in~n; 570736#L25 assume !(~n <= 0); 570726#L26 call #t~ret0 := fact(~n - 1);< 570729#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#78#return; 570223#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572063#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 572062#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572061#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572060#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569795#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 570322#$Ultimate##0 ~n := #in~n; 571185#L25 assume !(~n <= 0); 570292#L26 call #t~ret0 := fact(~n - 1);< 570345#$Ultimate##0 ~n := #in~n; 571382#L25 assume !(~n <= 0); 570304#L26 call #t~ret0 := fact(~n - 1);< 570715#$Ultimate##0 ~n := #in~n; 571329#L25 assume !(~n <= 0); 570298#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570422#factFINAL assume true; 569723#factEXIT >#74#return; 569825#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 570101#$Ultimate##0 ~n := #in~n; 570846#L25 assume !(~n <= 0); 570296#L26 call #t~ret0 := fact(~n - 1);< 570374#$Ultimate##0 ~n := #in~n; 570852#L25 assume !(~n <= 0); 570299#L26 call #t~ret0 := fact(~n - 1);< 570429#$Ultimate##0 ~n := #in~n; 570745#L25 assume !(~n <= 0); 570300#L26 call #t~ret0 := fact(~n - 1);< 570453#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570349#factFINAL assume true; 570328#factEXIT >#66#return; 570341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570660#factFINAL assume true; 570478#factEXIT >#66#return; 570431#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570422#factFINAL assume true; 569723#factEXIT >#76#return; 569842#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 568703#$Ultimate##0 ~n := #in~n; 571306#L25 assume !(~n <= 0); 570301#L26 call #t~ret0 := fact(~n - 1);< 571292#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570737#L25 assume !(~n <= 0); 570291#L26 call #t~ret0 := fact(~n - 1);< 570727#$Ultimate##0 ~n := #in~n; 570742#L25 assume ~n <= 0;#res := 1; 570741#factFINAL assume true; 570725#factEXIT >#66#return; 570724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570484#factFINAL assume true; 570464#factEXIT >#66#return; 570463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570455#factFINAL assume true; 570423#factEXIT >#66#return; 570420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570373#factFINAL assume true; 570357#factEXIT >#66#return; 570366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 570241#factFINAL assume true; 570114#factEXIT >#78#return; 569993#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 572016#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 572017#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 572011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 572012#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 569151#L30-5 [2023-02-17 09:43:04,592 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:04,592 INFO L85 PathProgramCache]: Analyzing trace with hash 2116544583, now seen corresponding path program 43 times [2023-02-17 09:43:04,592 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:04,592 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2009713018] [2023-02-17 09:43:04,593 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:04,593 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:04,628 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:04,628 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1851493644] [2023-02-17 09:43:04,628 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:43:04,628 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:04,628 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:04,630 INFO L229 MonitoredProcess]: Starting monitored process 235 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:04,631 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (235)] Waiting until timeout for monitored process [2023-02-17 09:43:05,806 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:43:05,820 INFO L263 TraceCheckSpWp]: Trace formula consists of 4150 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:43:05,831 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:05,929 INFO L134 CoverageAnalysis]: Checked inductivity of 236860 backedges. 102338 proven. 332 refuted. 0 times theorem prover too weak. 134190 trivial. 0 not checked. [2023-02-17 09:43:05,929 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:06,058 INFO L134 CoverageAnalysis]: Checked inductivity of 236860 backedges. 1334 proven. 332 refuted. 0 times theorem prover too weak. 235194 trivial. 0 not checked. [2023-02-17 09:43:06,058 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:06,058 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2009713018] [2023-02-17 09:43:06,058 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:06,058 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1851493644] [2023-02-17 09:43:06,058 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1851493644] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:06,058 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:06,059 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:43:06,059 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [66462875] [2023-02-17 09:43:06,059 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:06,060 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:06,060 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:06,060 INFO L85 PathProgramCache]: Analyzing trace with hash 1463469100, now seen corresponding path program 37 times [2023-02-17 09:43:06,060 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:06,060 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [253720680] [2023-02-17 09:43:06,060 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:06,060 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:06,082 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:06,082 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1104160135] [2023-02-17 09:43:06,083 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:43:06,083 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:06,083 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:06,086 INFO L229 MonitoredProcess]: Starting monitored process 236 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:06,087 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (236)] Waiting until timeout for monitored process [2023-02-17 09:43:06,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:43:06,984 INFO L263 TraceCheckSpWp]: Trace formula consists of 1946 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:43:06,989 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:07,208 INFO L134 CoverageAnalysis]: Checked inductivity of 58391 backedges. 13262 proven. 569 refuted. 0 times theorem prover too weak. 44560 trivial. 0 not checked. [2023-02-17 09:43:07,208 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:07,527 INFO L134 CoverageAnalysis]: Checked inductivity of 58391 backedges. 86 proven. 8771 refuted. 0 times theorem prover too weak. 49534 trivial. 0 not checked. [2023-02-17 09:43:07,527 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:07,527 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [253720680] [2023-02-17 09:43:07,527 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:07,528 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1104160135] [2023-02-17 09:43:07,528 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1104160135] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:07,528 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:07,528 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 28] total 31 [2023-02-17 09:43:07,528 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [456702510] [2023-02-17 09:43:07,528 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:07,528 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:07,528 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:07,529 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-17 09:43:07,529 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=147, Invalid=783, Unknown=0, NotChecked=0, Total=930 [2023-02-17 09:43:07,529 INFO L87 Difference]: Start difference. First operand 3995 states and 9334 transitions. cyclomatic complexity: 5382 Second operand has 31 states, 28 states have (on average 2.642857142857143) internal successors, (74), 28 states have internal predecessors, (74), 18 states have call successors, (31), 2 states have call predecessors, (31), 14 states have return successors, (40), 16 states have call predecessors, (40), 18 states have call successors, (40) [2023-02-17 09:43:08,384 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:08,384 INFO L93 Difference]: Finished difference Result 4815 states and 10473 transitions. [2023-02-17 09:43:08,385 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4815 states and 10473 transitions. [2023-02-17 09:43:08,415 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 1180 [2023-02-17 09:43:08,454 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4815 states to 4775 states and 10183 transitions. [2023-02-17 09:43:08,454 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 788 [2023-02-17 09:43:08,455 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 788 [2023-02-17 09:43:08,455 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4775 states and 10183 transitions. [2023-02-17 09:43:08,455 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:08,455 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4775 states and 10183 transitions. [2023-02-17 09:43:08,457 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4775 states and 10183 transitions. [2023-02-17 09:43:08,527 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4775 to 4011. [2023-02-17 09:43:08,531 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4011 states, 2195 states have (on average 1.0437357630979498) internal successors, (2291), 2180 states have internal predecessors, (2291), 1569 states have call successors, (1606), 320 states have call predecessors, (1606), 247 states have return successors, (5268), 1510 states have call predecessors, (5268), 1569 states have call successors, (5268) [2023-02-17 09:43:08,547 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4011 states to 4011 states and 9165 transitions. [2023-02-17 09:43:08,548 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4011 states and 9165 transitions. [2023-02-17 09:43:08,548 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2023-02-17 09:43:08,548 INFO L428 stractBuchiCegarLoop]: Abstraction has 4011 states and 9165 transitions. [2023-02-17 09:43:08,548 INFO L335 stractBuchiCegarLoop]: ======== Iteration 67 ============ [2023-02-17 09:43:08,549 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4011 states and 9165 transitions. [2023-02-17 09:43:08,561 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 793 [2023-02-17 09:43:08,561 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:08,561 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:08,567 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [306, 306, 219, 219, 219, 219, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:08,568 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [155, 155, 125, 125, 125, 125, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:08,568 INFO L748 eck$LassoCheckResult]: Stem: 594779#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 594630#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 594631#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 594654#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 594780#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 595433#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 595431#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595427#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 595428#$Ultimate##0 ~n := #in~n; 595432#L25 assume ~n <= 0;#res := 1; 595430#factFINAL assume true; 595426#factEXIT >#68#return; 595422#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595423#$Ultimate##0 ~n := #in~n; 595429#L25 assume ~n <= 0;#res := 1; 595425#factFINAL assume true; 595421#factEXIT >#70#return; 595418#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 595419#$Ultimate##0 ~n := #in~n; 595424#L25 assume ~n <= 0;#res := 1; 595420#factFINAL assume true; 595417#factEXIT >#72#return; 595416#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 595414#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 595412#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 595410#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 595408#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595344#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 595345#$Ultimate##0 ~n := #in~n; 595356#L25 assume !(~n <= 0); 595352#L26 call #t~ret0 := fact(~n - 1);< 595354#$Ultimate##0 ~n := #in~n; 595360#L25 assume ~n <= 0;#res := 1; 595357#factFINAL assume true; 595350#factEXIT >#66#return; 595348#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595347#factFINAL assume true; 595343#factEXIT >#74#return; 595341#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595342#$Ultimate##0 ~n := #in~n; 595355#L25 assume ~n <= 0;#res := 1; 595349#factFINAL assume true; 595340#factEXIT >#76#return; 595338#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 595339#$Ultimate##0 ~n := #in~n; 595359#L25 assume !(~n <= 0); 595351#L26 call #t~ret0 := fact(~n - 1);< 595354#$Ultimate##0 ~n := #in~n; 595360#L25 assume ~n <= 0;#res := 1; 595357#factFINAL assume true; 595350#factEXIT >#66#return; 595353#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595358#factFINAL assume true; 595337#factEXIT >#78#return; 595336#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 595335#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 595333#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 595332#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 595331#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595316#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 595318#$Ultimate##0 ~n := #in~n; 595328#L25 assume !(~n <= 0); 595324#L26 call #t~ret0 := fact(~n - 1);< 595326#$Ultimate##0 ~n := #in~n; 595369#L25 assume !(~n <= 0); 595325#L26 call #t~ret0 := fact(~n - 1);< 595367#$Ultimate##0 ~n := #in~n; 595390#L25 assume ~n <= 0;#res := 1; 595388#factFINAL assume true; 595382#factEXIT >#66#return; 595378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595373#factFINAL assume true; 595363#factEXIT >#66#return; 595365#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595403#factFINAL assume true; 595398#factEXIT >#74#return; 595392#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595393#$Ultimate##0 ~n := #in~n; 595402#L25 assume ~n <= 0;#res := 1; 595397#factFINAL assume true; 595391#factEXIT >#76#return; 595374#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 595386#$Ultimate##0 ~n := #in~n; 595380#L25 assume !(~n <= 0); 595364#L26 call #t~ret0 := fact(~n - 1);< 595375#$Ultimate##0 ~n := #in~n; 595385#L25 assume !(~n <= 0); 595383#L26 call #t~ret0 := fact(~n - 1);< 595384#$Ultimate##0 ~n := #in~n; 595390#L25 assume ~n <= 0;#res := 1; 595388#factFINAL assume true; 595382#factEXIT >#66#return; 595378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595373#factFINAL assume true; 595363#factEXIT >#66#return; 595366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595415#factFINAL assume true; 595413#factEXIT >#78#return; 595411#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 595409#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 595407#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 595406#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 595404#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595317#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 595318#$Ultimate##0 ~n := #in~n; 595328#L25 assume !(~n <= 0); 595324#L26 call #t~ret0 := fact(~n - 1);< 595326#$Ultimate##0 ~n := #in~n; 595369#L25 assume !(~n <= 0); 595325#L26 call #t~ret0 := fact(~n - 1);< 595367#$Ultimate##0 ~n := #in~n; 595369#L25 assume !(~n <= 0); 595325#L26 call #t~ret0 := fact(~n - 1);< 595367#$Ultimate##0 ~n := #in~n; 595390#L25 assume ~n <= 0;#res := 1; 595388#factFINAL assume true; 595382#factEXIT >#66#return; 595378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595373#factFINAL assume true; 595363#factEXIT >#66#return; 595362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595361#factFINAL assume true; 595323#factEXIT >#66#return; 595322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595321#factFINAL assume true; 595315#factEXIT >#74#return; 595313#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595314#$Ultimate##0 ~n := #in~n; 595377#L25 assume ~n <= 0;#res := 1; 595372#factFINAL assume true; 595312#factEXIT >#76#return; 595307#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 595310#$Ultimate##0 ~n := #in~n; 595311#L25 assume !(~n <= 0); 595295#L26 call #t~ret0 := fact(~n - 1);< 595308#$Ultimate##0 ~n := #in~n; 595399#L25 assume !(~n <= 0); 595296#L26 call #t~ret0 := fact(~n - 1);< 595299#$Ultimate##0 ~n := #in~n; 595396#L25 assume !(~n <= 0); 595294#L26 call #t~ret0 := fact(~n - 1);< 595395#$Ultimate##0 ~n := #in~n; 595401#L25 assume ~n <= 0;#res := 1; 595400#factFINAL assume true; 595394#factEXIT >#66#return; 595389#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595387#factFINAL assume true; 595381#factEXIT >#66#return; 595376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595371#factFINAL assume true; 595370#factEXIT >#66#return; 595298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595434#factFINAL assume true; 595309#factEXIT >#78#return; 595305#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 595304#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 595303#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 595302#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 595300#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595286#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 595287#$Ultimate##0 ~n := #in~n; 595301#L25 assume !(~n <= 0); 595297#L26 call #t~ret0 := fact(~n - 1);< 595299#$Ultimate##0 ~n := #in~n; 595396#L25 assume !(~n <= 0); 595294#L26 call #t~ret0 := fact(~n - 1);< 595395#$Ultimate##0 ~n := #in~n; 595396#L25 assume !(~n <= 0); 595294#L26 call #t~ret0 := fact(~n - 1);< 595395#$Ultimate##0 ~n := #in~n; 595396#L25 assume !(~n <= 0); 595294#L26 call #t~ret0 := fact(~n - 1);< 595395#$Ultimate##0 ~n := #in~n; 595401#L25 assume ~n <= 0;#res := 1; 595400#factFINAL assume true; 595394#factEXIT >#66#return; 595389#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595387#factFINAL assume true; 595381#factEXIT >#66#return; 595376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595371#factFINAL assume true; 595370#factEXIT >#66#return; 595368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595306#factFINAL assume true; 595293#factEXIT >#66#return; 595292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595291#factFINAL assume true; 595285#factEXIT >#74#return; 595280#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595281#$Ultimate##0 ~n := #in~n; 595288#L25 assume ~n <= 0;#res := 1; 595284#factFINAL assume true; 595279#factEXIT >#76#return; 595259#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 595273#$Ultimate##0 ~n := #in~n; 595272#L25 assume !(~n <= 0); 595238#L26 call #t~ret0 := fact(~n - 1);< 595260#$Ultimate##0 ~n := #in~n; 595320#L25 assume !(~n <= 0); 595240#L26 call #t~ret0 := fact(~n - 1);< 595270#$Ultimate##0 ~n := #in~n; 595330#L25 assume !(~n <= 0); 595232#L26 call #t~ret0 := fact(~n - 1);< 595290#$Ultimate##0 ~n := #in~n; 595330#L25 assume !(~n <= 0); 595232#L26 call #t~ret0 := fact(~n - 1);< 595290#$Ultimate##0 ~n := #in~n; 595405#L25 assume ~n <= 0;#res := 1; 595319#factFINAL assume true; 595289#factEXIT >#66#return; 595283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595282#factFINAL assume true; 595276#factEXIT >#66#return; 595275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595274#factFINAL assume true; 595269#factEXIT >#66#return; 595268#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595258#factFINAL assume true; 595253#factEXIT >#66#return; 595254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595551#factFINAL assume true; 595549#factEXIT >#78#return; 595548#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 595546#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 595542#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 595539#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 595538#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 594951#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594952#$Ultimate##0 ~n := #in~n; 594973#L25 assume !(~n <= 0); 594969#L26 call #t~ret0 := fact(~n - 1);< 594970#$Ultimate##0 ~n := #in~n; 594985#L25 assume !(~n <= 0); 594981#L26 call #t~ret0 := fact(~n - 1);< 594982#$Ultimate##0 ~n := #in~n; 594998#L25 assume !(~n <= 0); 594993#L26 call #t~ret0 := fact(~n - 1);< 594995#$Ultimate##0 ~n := #in~n; 595010#L25 assume !(~n <= 0); 594994#L26 call #t~ret0 := fact(~n - 1);< 595007#$Ultimate##0 ~n := #in~n; 595010#L25 assume !(~n <= 0); 594994#L26 call #t~ret0 := fact(~n - 1);< 595007#$Ultimate##0 ~n := #in~n; 595020#L25 assume ~n <= 0;#res := 1; 595018#factFINAL assume true; 595016#factEXIT >#66#return; 595013#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595009#factFINAL assume true; 595006#factEXIT >#66#return; 595003#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 594997#factFINAL assume true; 594992#factEXIT >#66#return; 594989#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 594984#factFINAL assume true; 594980#factEXIT >#66#return; 594977#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 594972#factFINAL assume true; 594968#factEXIT >#66#return; 594963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 594956#factFINAL assume true; 594950#factEXIT >#74#return; 594948#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594949#$Ultimate##0 ~n := #in~n; 595028#L25 assume ~n <= 0;#res := 1; 595026#factFINAL assume true; 594947#factEXIT >#76#return; 594939#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594943#$Ultimate##0 ~n := #in~n; 594940#L25 assume !(~n <= 0); 594912#L26 call #t~ret0 := fact(~n - 1);< 594937#$Ultimate##0 ~n := #in~n; 595044#L25 assume !(~n <= 0); 594914#L26 call #t~ret0 := fact(~n - 1);< 594946#$Ultimate##0 ~n := #in~n; 595067#L25 assume !(~n <= 0); 594905#L26 call #t~ret0 := fact(~n - 1);< 595032#$Ultimate##0 ~n := #in~n; 595073#L25 assume !(~n <= 0); 594906#L26 call #t~ret0 := fact(~n - 1);< 594932#$Ultimate##0 ~n := #in~n; 595074#L25 assume !(~n <= 0); 594908#L26 call #t~ret0 := fact(~n - 1);< 595069#$Ultimate##0 ~n := #in~n; 595075#L25 assume ~n <= 0;#res := 1; 595072#factFINAL assume true; 595068#factEXIT >#66#return; 595062#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595059#factFINAL assume true; 595052#factEXIT >#66#return; 595048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595046#factFINAL assume true; 595031#factEXIT >#66#return; 595030#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595023#factFINAL assume true; 594945#factEXIT >#66#return; 594942#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 594938#factFINAL assume true; 594936#factEXIT >#66#return; 594920#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595128#factFINAL assume true; 595105#factEXIT >#78#return; 594886#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 594885#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 594884#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 594883#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 594882#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 594881#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 594880#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 594879#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 594852#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594875#$Ultimate##0 ~n := #in~n; 594878#L25 assume !(~n <= 0); 595715#L26 call #t~ret0 := fact(~n - 1);< 595918#$Ultimate##0 ~n := #in~n; 597282#L25 assume ~n <= 0;#res := 1; 597278#factFINAL assume true; 597270#factEXIT >#66#return; 597267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597264#factFINAL assume true; 597261#factEXIT >#68#return; 594834#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595928#$Ultimate##0 ~n := #in~n; 594877#L25 assume ~n <= 0;#res := 1; 594876#factFINAL assume true; 594826#factEXIT >#70#return; 594864#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597253#$Ultimate##0 ~n := #in~n; 597266#L25 assume !(~n <= 0); 594640#L26 call #t~ret0 := fact(~n - 1);< 597263#$Ultimate##0 ~n := #in~n; 597269#L25 assume ~n <= 0;#res := 1; 597265#factFINAL assume true; 597262#factEXIT >#66#return; 597260#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597257#factFINAL assume true; 597252#factEXIT >#72#return; 597249#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 597246#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 597245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 597242#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 597241#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 597159#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594718#$Ultimate##0 ~n := #in~n; 597243#L25 assume !(~n <= 0); 596392#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597240#factFINAL assume true; 597122#factEXIT >#68#return; 597166#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 597236#$Ultimate##0 ~n := #in~n; 597244#L25 assume !(~n <= 0); 596915#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597240#factFINAL assume true; 597122#factEXIT >#70#return; 597035#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597114#$Ultimate##0 ~n := #in~n; 597237#L25 assume ~n <= 0;#res := 1; 596731#factFINAL assume true; 597034#factEXIT >#72#return; 597033#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 597032#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 597030#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 597028#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 597027#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595981#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 596222#$Ultimate##0 ~n := #in~n; 596928#L25 assume !(~n <= 0); 596400#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#74#return; 594702#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596723#$Ultimate##0 ~n := #in~n; 594694#L25 assume !(~n <= 0); 594699#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#76#return; 594708#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596723#$Ultimate##0 ~n := #in~n; 594694#L25 assume !(~n <= 0); 594699#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#78#return; 596722#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 596930#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 596929#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 596927#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 596926#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596330#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 596909#$Ultimate##0 ~n := #in~n; 597312#L25 assume !(~n <= 0); 596382#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596573#factFINAL assume true; 596489#factEXIT >#74#return; 594710#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596723#$Ultimate##0 ~n := #in~n; 594694#L25 assume !(~n <= 0); 594699#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#76#return; 596698#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596924#$Ultimate##0 ~n := #in~n; 596922#L25 assume !(~n <= 0); 596578#L26 call #t~ret0 := fact(~n - 1);< 596920#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#78#return; 596747#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 596923#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 596921#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 596912#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 596910#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596351#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 596909#$Ultimate##0 ~n := #in~n; 597312#L25 assume !(~n <= 0); 596382#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#74#return; 594706#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596723#$Ultimate##0 ~n := #in~n; 594694#L25 assume !(~n <= 0); 594699#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#76#return; 596352#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596574#$Ultimate##0 ~n := #in~n; 597341#L25 assume !(~n <= 0); 596420#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596573#factFINAL assume true; 596489#factEXIT >#78#return; 596490#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598337#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598335#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598334#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598333#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596198#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597354#factFINAL assume true; 597323#factEXIT >#74#return; 594709#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596723#$Ultimate##0 ~n := #in~n; 594694#L25 assume !(~n <= 0); 594699#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#76#return; 596360#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596574#$Ultimate##0 ~n := #in~n; 597341#L25 assume !(~n <= 0); 596420#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#78#return; 596218#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 596937#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 596246#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 596242#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 596231#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595830#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594544#$Ultimate##0 ~n := #in~n; 596241#L25 assume !(~n <= 0); 595872#L26 call #t~ret0 := fact(~n - 1);< 595902#$Ultimate##0 ~n := #in~n; 595919#L25 assume !(~n <= 0); 595856#L26 call #t~ret0 := fact(~n - 1);< 596227#$Ultimate##0 ~n := #in~n; 596226#L25 assume !(~n <= 0); 595851#L26 call #t~ret0 := fact(~n - 1);< 595857#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595855#factFINAL assume true; 595842#factEXIT >#66#return; 595853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595911#factFINAL assume true; 595907#factEXIT >#66#return; 595904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595901#factFINAL assume true; 595897#factEXIT >#66#return; 595898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597337#factFINAL assume true; 597333#factEXIT >#74#return; 596224#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594775#$Ultimate##0 ~n := #in~n; 596235#L25 assume !(~n <= 0); 596233#L26 call #t~ret0 := fact(~n - 1);< 596234#$Ultimate##0 ~n := #in~n; 596237#L25 assume ~n <= 0;#res := 1; 596236#factFINAL assume true; 596232#factEXIT >#66#return; 596230#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596229#factFINAL assume true; 596223#factEXIT >#76#return; 595778#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 595906#$Ultimate##0 ~n := #in~n; 595903#L25 assume !(~n <= 0); 595845#L26 call #t~ret0 := fact(~n - 1);< 595865#$Ultimate##0 ~n := #in~n; 595891#L25 assume !(~n <= 0); 595847#L26 call #t~ret0 := fact(~n - 1);< 595857#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595855#factFINAL assume true; 595842#factEXIT >#66#return; 595853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595911#factFINAL assume true; 595907#factEXIT >#66#return; 595904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595901#factFINAL assume true; 595897#factEXIT >#66#return; 595898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597337#factFINAL assume true; 597333#factEXIT >#78#return; 595800#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 597331#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 597330#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 597328#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 597326#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 597311#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 596244#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 595910#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 594627#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594628#$Ultimate##0 ~n := #in~n; 595817#L25 assume !(~n <= 0); 595716#L26 call #t~ret0 := fact(~n - 1);< 595814#$Ultimate##0 ~n := #in~n; 595841#L25 assume !(~n <= 0); 595718#L26 call #t~ret0 := fact(~n - 1);< 595839#$Ultimate##0 ~n := #in~n; 595921#L25 assume ~n <= 0;#res := 1; 595916#factFINAL assume true; 595838#factEXIT >#66#return; 595837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595813#factFINAL assume true; 595807#factEXIT >#66#return; 595808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597611#factFINAL assume true; 597596#factEXIT >#68#return; 594837#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595928#$Ultimate##0 ~n := #in~n; 594877#L25 assume ~n <= 0;#res := 1; 594876#factFINAL assume true; 594826#factEXIT >#70#return; 594865#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597377#$Ultimate##0 ~n := #in~n; 597392#L25 assume !(~n <= 0); 594639#L26 call #t~ret0 := fact(~n - 1);< 597387#$Ultimate##0 ~n := #in~n; 597277#L25 assume !(~n <= 0); 594636#L26 call #t~ret0 := fact(~n - 1);< 594641#$Ultimate##0 ~n := #in~n; 597436#L25 assume ~n <= 0;#res := 1; 597397#factFINAL assume true; 597394#factEXIT >#66#return; 597393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597388#factFINAL assume true; 597381#factEXIT >#66#return; 597380#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597379#factFINAL assume true; 597369#factEXIT >#72#return; 597374#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598055#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598051#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598049#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598048#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596619#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597280#$Ultimate##0 ~n := #in~n; 597464#L25 assume !(~n <= 0); 596398#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597439#factFINAL assume true; 597440#factEXIT >#68#return; 596862#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 597116#$Ultimate##0 ~n := #in~n; 597115#L25 assume !(~n <= 0); 596431#L26 call #t~ret0 := fact(~n - 1);< 596903#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597240#factFINAL assume true; 597122#factEXIT >#70#return; 594746#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594720#$Ultimate##0 ~n := #in~n; 594736#L25 assume !(~n <= 0); 596914#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597307#factFINAL assume true; 597293#factEXIT >#72#return; 597298#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598020#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598019#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598017#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598015#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596611#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597280#$Ultimate##0 ~n := #in~n; 597464#L25 assume !(~n <= 0); 596398#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597439#factFINAL assume true; 597440#factEXIT >#68#return; 596877#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 597116#$Ultimate##0 ~n := #in~n; 597115#L25 assume !(~n <= 0); 596431#L26 call #t~ret0 := fact(~n - 1);< 596903#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597439#factFINAL assume true; 597440#factEXIT >#70#return; 594753#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594720#$Ultimate##0 ~n := #in~n; 594736#L25 assume ~n <= 0;#res := 1; 596731#factFINAL assume true; 597034#factEXIT >#72#return; 597076#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598012#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598011#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598009#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598007#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596302#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 596909#$Ultimate##0 ~n := #in~n; 597312#L25 assume !(~n <= 0); 596382#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596573#factFINAL assume true; 596489#factEXIT >#74#return; 596303#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594777#$Ultimate##0 ~n := #in~n; 596907#L25 assume !(~n <= 0); 596421#L26 call #t~ret0 := fact(~n - 1);< 596737#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#76#return; 596701#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596924#$Ultimate##0 ~n := #in~n; 596922#L25 assume !(~n <= 0); 596578#L26 call #t~ret0 := fact(~n - 1);< 596920#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#78#return; 596710#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598004#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598000#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 597999#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596307#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 596909#$Ultimate##0 ~n := #in~n; 597312#L25 assume !(~n <= 0); 596382#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#74#return; 596309#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594777#$Ultimate##0 ~n := #in~n; 596907#L25 assume !(~n <= 0); 596421#L26 call #t~ret0 := fact(~n - 1);< 596737#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#76#return; 596703#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596924#$Ultimate##0 ~n := #in~n; 596922#L25 assume !(~n <= 0); 596578#L26 call #t~ret0 := fact(~n - 1);< 596920#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#78#return; 596754#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 597998#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 597997#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 597996#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 597995#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596082#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597354#factFINAL assume true; 597323#factEXIT >#74#return; 596306#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594777#$Ultimate##0 ~n := #in~n; 596907#L25 assume !(~n <= 0); 596421#L26 call #t~ret0 := fact(~n - 1);< 596737#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#76#return; 596313#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596574#$Ultimate##0 ~n := #in~n; 597341#L25 assume !(~n <= 0); 596420#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#78#return; 596376#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 597994#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 597992#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 597990#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 597988#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596121#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597354#factFINAL assume true; 597323#factEXIT >#74#return; 596319#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594777#$Ultimate##0 ~n := #in~n; 596907#L25 assume !(~n <= 0); 596421#L26 call #t~ret0 := fact(~n - 1);< 596737#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596942#L25 assume !(~n <= 0); 596479#L26 call #t~ret0 := fact(~n - 1);< 596762#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596573#factFINAL assume true; 596489#factEXIT >#76#return; 596324#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594783#$Ultimate##0 ~n := #in~n; 597461#L25 assume !(~n <= 0); 596434#L26 call #t~ret0 := fact(~n - 1);< 596687#$Ultimate##0 ~n := #in~n; 596942#L25 assume !(~n <= 0); 596479#L26 call #t~ret0 := fact(~n - 1);< 596762#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#78#return; 596220#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598467#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598465#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598464#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598462#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 594543#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594544#$Ultimate##0 ~n := #in~n; 596241#L25 assume !(~n <= 0); 595872#L26 call #t~ret0 := fact(~n - 1);< 595902#$Ultimate##0 ~n := #in~n; 595919#L25 assume !(~n <= 0); 595856#L26 call #t~ret0 := fact(~n - 1);< 596227#$Ultimate##0 ~n := #in~n; 596226#L25 assume !(~n <= 0); 595851#L26 call #t~ret0 := fact(~n - 1);< 595857#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595855#factFINAL assume true; 595842#factEXIT >#66#return; 595853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595911#factFINAL assume true; 595907#factEXIT >#66#return; 595904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595901#factFINAL assume true; 595897#factEXIT >#66#return; 595895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595892#factFINAL assume true; 595884#factEXIT >#66#return; 595874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595877#factFINAL assume true; 595866#factEXIT >#66#return; 595863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595859#factFINAL assume true; 595818#factEXIT >#74#return; 594570#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595900#$Ultimate##0 ~n := #in~n; 595889#L25 assume !(~n <= 0); 595846#L26 call #t~ret0 := fact(~n - 1);< 595865#$Ultimate##0 ~n := #in~n; 595891#L25 assume !(~n <= 0); 595847#L26 call #t~ret0 := fact(~n - 1);< 595857#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 598094#factFINAL assume true; 594547#factEXIT >#76#return; 594590#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594781#$Ultimate##0 ~n := #in~n; 596245#L25 assume !(~n <= 0); 595871#L26 call #t~ret0 := fact(~n - 1);< 595912#$Ultimate##0 ~n := #in~n; 596228#L25 assume !(~n <= 0); 595852#L26 call #t~ret0 := fact(~n - 1);< 595925#$Ultimate##0 ~n := #in~n; 595920#L25 assume !(~n <= 0); 595848#L26 call #t~ret0 := fact(~n - 1);< 595862#$Ultimate##0 ~n := #in~n; 595891#L25 assume !(~n <= 0); 595847#L26 call #t~ret0 := fact(~n - 1);< 595857#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595855#factFINAL assume true; 595842#factEXIT >#66#return; 595853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595911#factFINAL assume true; 595907#factEXIT >#66#return; 595904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595901#factFINAL assume true; 595897#factEXIT >#66#return; 595898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597337#factFINAL assume true; 597333#factEXIT >#78#return; 594632#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 594633#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 594655#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 594712#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 594649#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 594647#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 594648#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 597980#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595697#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594628#$Ultimate##0 ~n := #in~n; 595817#L25 assume !(~n <= 0); 595716#L26 call #t~ret0 := fact(~n - 1);< 595814#$Ultimate##0 ~n := #in~n; 595841#L25 assume !(~n <= 0); 595718#L26 call #t~ret0 := fact(~n - 1);< 595839#$Ultimate##0 ~n := #in~n; 595921#L25 assume ~n <= 0;#res := 1; 595916#factFINAL assume true; 595838#factEXIT >#66#return; 595837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595813#factFINAL assume true; 595807#factEXIT >#66#return; 595808#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597611#factFINAL assume true; 597596#factEXIT >#68#return; 594843#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595928#$Ultimate##0 ~n := #in~n; 594877#L25 assume ~n <= 0;#res := 1; 594876#factFINAL assume true; 594826#factEXIT >#70#return; 594867#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597376#$Ultimate##0 ~n := #in~n; 597964#L25 assume !(~n <= 0); 594643#L26 call #t~ret0 := fact(~n - 1);< 597721#$Ultimate##0 ~n := #in~n; 597977#L25 assume !(~n <= 0); 594642#L26 call #t~ret0 := fact(~n - 1);< 594646#$Ultimate##0 ~n := #in~n; 597784#L25 assume ~n <= 0;#res := 1; 597786#factFINAL assume true; 597774#factEXIT >#66#return; 597772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597771#factFINAL assume true; 597716#factEXIT >#66#return; 597714#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597693#factFINAL assume true; 597684#factEXIT >#72#return; 597686#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598315#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598310#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598311#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598305#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 594617#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597619#$Ultimate##0 ~n := #in~n; 597562#L25 assume !(~n <= 0); 597521#L26 call #t~ret0 := fact(~n - 1);< 597594#$Ultimate##0 ~n := #in~n; 597598#L25 assume !(~n <= 0); 594625#L26 call #t~ret0 := fact(~n - 1);< 597617#$Ultimate##0 ~n := #in~n; 598117#L25 assume ~n <= 0;#res := 1; 594624#factFINAL assume true; 594626#factEXIT >#66#return; 597616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597613#factFINAL assume true; 597592#factEXIT >#66#return; 597593#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597814#factFINAL assume true; 597813#factEXIT >#68#return; 597477#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594716#$Ultimate##0 ~n := #in~n; 597508#L25 assume ~n <= 0;#res := 1; 597503#factFINAL assume true; 597471#factEXIT >#70#return; 596623#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597466#$Ultimate##0 ~n := #in~n; 597465#L25 assume !(~n <= 0); 596577#L26 call #t~ret0 := fact(~n - 1);< 596587#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597811#factFINAL assume true; 597807#factEXIT >#72#return; 597301#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598453#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598451#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598449#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598403#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596608#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597280#$Ultimate##0 ~n := #in~n; 597464#L25 assume !(~n <= 0); 596398#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597451#factFINAL assume true; 597437#factEXIT >#68#return; 596844#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 597116#$Ultimate##0 ~n := #in~n; 597115#L25 assume !(~n <= 0); 596431#L26 call #t~ret0 := fact(~n - 1);< 596903#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597439#factFINAL assume true; 597440#factEXIT >#70#return; 597001#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597239#$Ultimate##0 ~n := #in~n; 597121#L25 assume ~n <= 0;#res := 1; 596731#factFINAL assume true; 597034#factEXIT >#72#return; 597106#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598537#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598536#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598535#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598520#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596533#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597276#$Ultimate##0 ~n := #in~n; 597340#L25 assume !(~n <= 0); 596401#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596476#factFINAL assume true; 596469#factEXIT >#66#return; 596472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597787#factFINAL assume true; 597715#factEXIT >#68#return; 597131#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594718#$Ultimate##0 ~n := #in~n; 597243#L25 assume !(~n <= 0); 596392#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597629#factFINAL assume true; 597618#factEXIT >#70#return; 596949#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597258#$Ultimate##0 ~n := #in~n; 597254#L25 assume ~n <= 0;#res := 1; 596731#factFINAL assume true; 597034#factEXIT >#72#return; 597057#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598519#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598518#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598517#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598314#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596053#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 596254#$Ultimate##0 ~n := #in~n; 597455#L25 assume !(~n <= 0); 596395#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#74#return; 596304#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596379#$Ultimate##0 ~n := #in~n; 598043#L25 assume !(~n <= 0); 596427#L26 call #t~ret0 := fact(~n - 1);< 596441#$Ultimate##0 ~n := #in~n; 597335#L25 assume !(~n <= 0); 596423#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#76#return; 594697#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596723#$Ultimate##0 ~n := #in~n; 594694#L25 assume !(~n <= 0); 594699#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#78#return; 596712#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598330#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598329#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598328#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598327#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596168#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597354#factFINAL assume true; 597323#factEXIT >#74#return; 596331#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596379#$Ultimate##0 ~n := #in~n; 598043#L25 assume !(~n <= 0); 596427#L26 call #t~ret0 := fact(~n - 1);< 596441#$Ultimate##0 ~n := #in~n; 597335#L25 assume !(~n <= 0); 596423#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#76#return; 596341#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594783#$Ultimate##0 ~n := #in~n; 597461#L25 assume !(~n <= 0); 596434#L26 call #t~ret0 := fact(~n - 1);< 596687#$Ultimate##0 ~n := #in~n; 596942#L25 assume !(~n <= 0); 596479#L26 call #t~ret0 := fact(~n - 1);< 596762#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#78#return; 596746#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598324#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598322#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598320#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598318#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596201#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597321#factFINAL assume true; 597320#factEXIT >#74#return; 595943#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596243#$Ultimate##0 ~n := #in~n; 596938#L25 assume !(~n <= 0); 596394#L26 call #t~ret0 := fact(~n - 1);< 596442#$Ultimate##0 ~n := #in~n; 597334#L25 assume !(~n <= 0); 596389#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#76#return; 595956#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596222#$Ultimate##0 ~n := #in~n; 596928#L25 assume !(~n <= 0); 596400#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#78#return; 596361#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598171#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598170#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598132#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598129#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595985#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596476#factFINAL assume true; 596469#factEXIT >#66#return; 596411#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596415#factFINAL assume true; 596380#factEXIT >#66#return; 596377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596253#factFINAL assume true; 596247#factEXIT >#74#return; 596024#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596243#$Ultimate##0 ~n := #in~n; 596938#L25 assume !(~n <= 0); 596394#L26 call #t~ret0 := fact(~n - 1);< 596442#$Ultimate##0 ~n := #in~n; 597334#L25 assume !(~n <= 0); 596389#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596476#factFINAL assume true; 596469#factEXIT >#66#return; 596411#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596415#factFINAL assume true; 596380#factEXIT >#66#return; 596377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596253#factFINAL assume true; 596247#factEXIT >#76#return; 596049#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596222#$Ultimate##0 ~n := #in~n; 596928#L25 assume !(~n <= 0); 596400#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#78#return; 596208#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598127#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598125#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598118#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595823#L30-5 [2023-02-17 09:43:08,569 INFO L750 eck$LassoCheckResult]: Loop: 595823#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594544#$Ultimate##0 ~n := #in~n; 596241#L25 assume !(~n <= 0); 595872#L26 call #t~ret0 := fact(~n - 1);< 595902#$Ultimate##0 ~n := #in~n; 595919#L25 assume !(~n <= 0); 595856#L26 call #t~ret0 := fact(~n - 1);< 596227#$Ultimate##0 ~n := #in~n; 596226#L25 assume !(~n <= 0); 595851#L26 call #t~ret0 := fact(~n - 1);< 595857#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595855#factFINAL assume true; 595842#factEXIT >#66#return; 595853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595911#factFINAL assume true; 595907#factEXIT >#66#return; 595904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595901#factFINAL assume true; 595897#factEXIT >#66#return; 595898#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597337#factFINAL assume true; 597333#factEXIT >#74#return; 595791#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 595812#$Ultimate##0 ~n := #in~n; 595883#L25 assume !(~n <= 0); 595844#L26 call #t~ret0 := fact(~n - 1);< 595854#$Ultimate##0 ~n := #in~n; 595920#L25 assume !(~n <= 0); 595848#L26 call #t~ret0 := fact(~n - 1);< 595862#$Ultimate##0 ~n := #in~n; 595891#L25 assume !(~n <= 0); 595847#L26 call #t~ret0 := fact(~n - 1);< 595857#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595855#factFINAL assume true; 595842#factEXIT >#66#return; 595840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595815#factFINAL assume true; 595811#factEXIT >#76#return; 594585#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 595804#$Ultimate##0 ~n := #in~n; 596239#L25 assume !(~n <= 0); 595849#L26 call #t~ret0 := fact(~n - 1);< 596238#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595896#L25 assume !(~n <= 0); 595843#L26 call #t~ret0 := fact(~n - 1);< 595888#$Ultimate##0 ~n := #in~n; 595905#L25 assume ~n <= 0;#res := 1; 595894#factFINAL assume true; 595887#factEXIT >#66#return; 595886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595881#factFINAL assume true; 595879#factEXIT >#66#return; 595876#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595864#factFINAL assume true; 595860#factEXIT >#66#return; 595858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595855#factFINAL assume true; 595842#factEXIT >#66#return; 595853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595911#factFINAL assume true; 595907#factEXIT >#66#return; 595904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595901#factFINAL assume true; 595897#factEXIT >#66#return; 595895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595892#factFINAL assume true; 595884#factEXIT >#66#return; 595874#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595877#factFINAL assume true; 595866#factEXIT >#66#return; 595863#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595859#factFINAL assume true; 595818#factEXIT >#78#return; 595795#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598105#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598101#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598100#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 598099#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 598097#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 598096#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 597450#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595703#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 595706#$Ultimate##0 ~n := #in~n; 595744#L25 assume !(~n <= 0); 595720#L26 call #t~ret0 := fact(~n - 1);< 595734#$Ultimate##0 ~n := #in~n; 595913#L25 assume !(~n <= 0); 595712#L26 call #t~ret0 := fact(~n - 1);< 595809#$Ultimate##0 ~n := #in~n; 595841#L25 assume !(~n <= 0); 595718#L26 call #t~ret0 := fact(~n - 1);< 595839#$Ultimate##0 ~n := #in~n; 595841#L25 assume !(~n <= 0); 595718#L26 call #t~ret0 := fact(~n - 1);< 595839#$Ultimate##0 ~n := #in~n; 595841#L25 assume !(~n <= 0); 595718#L26 call #t~ret0 := fact(~n - 1);< 595839#$Ultimate##0 ~n := #in~n; 595841#L25 assume !(~n <= 0); 595718#L26 call #t~ret0 := fact(~n - 1);< 595839#$Ultimate##0 ~n := #in~n; 595841#L25 assume !(~n <= 0); 595718#L26 call #t~ret0 := fact(~n - 1);< 595839#$Ultimate##0 ~n := #in~n; 595921#L25 assume ~n <= 0;#res := 1; 595916#factFINAL assume true; 595838#factEXIT >#66#return; 595837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595813#factFINAL assume true; 595807#factEXIT >#66#return; 595805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595763#factFINAL assume true; 595757#factEXIT >#66#return; 595756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595754#factFINAL assume true; 595749#factEXIT >#66#return; 595746#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595742#factFINAL assume true; 595739#factEXIT >#66#return; 595737#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595733#factFINAL assume true; 595729#factEXIT >#66#return; 595730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 595748#factFINAL assume true; 595711#factEXIT >#66#return; 595723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 598041#factFINAL assume true; 595696#factEXIT >#68#return; 594856#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594875#$Ultimate##0 ~n := #in~n; 594878#L25 assume ~n <= 0;#res := 1; 594876#factFINAL assume true; 594826#factEXIT >#70#return; 594793#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594823#$Ultimate##0 ~n := #in~n; 594824#L25 assume !(~n <= 0); 594663#L26 call #t~ret0 := fact(~n - 1);< 594820#$Ultimate##0 ~n := #in~n; 594815#L25 assume !(~n <= 0); 594666#L26 call #t~ret0 := fact(~n - 1);< 594814#$Ultimate##0 ~n := #in~n; 597449#L25 assume !(~n <= 0); 594664#L26 call #t~ret0 := fact(~n - 1);< 597448#$Ultimate##0 ~n := #in~n; 597447#L25 assume !(~n <= 0); 594662#L26 call #t~ret0 := fact(~n - 1);< 597444#$Ultimate##0 ~n := #in~n; 597442#L25 assume !(~n <= 0); 594668#L26 call #t~ret0 := fact(~n - 1);< 597438#$Ultimate##0 ~n := #in~n; 597435#L25 assume !(~n <= 0); 594667#L26 call #t~ret0 := fact(~n - 1);< 597391#$Ultimate##0 ~n := #in~n; 597398#L25 assume !(~n <= 0); 594665#L26 call #t~ret0 := fact(~n - 1);< 597396#$Ultimate##0 ~n := #in~n; 597398#L25 assume !(~n <= 0); 594665#L26 call #t~ret0 := fact(~n - 1);< 597396#$Ultimate##0 ~n := #in~n; 597436#L25 assume ~n <= 0;#res := 1; 597397#factFINAL assume true; 597394#factEXIT >#66#return; 597393#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597388#factFINAL assume true; 597381#factEXIT >#66#return; 597386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597887#factFINAL assume true; 597886#factEXIT >#66#return; 597884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597883#factFINAL assume true; 597878#factEXIT >#66#return; 597879#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597885#factFINAL assume true; 597881#factEXIT >#66#return; 597880#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597877#factFINAL assume true; 597874#factEXIT >#66#return; 594661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 594670#factFINAL assume true; 594803#factEXIT >#66#return; 594804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 598042#factFINAL assume true; 598040#factEXIT >#66#return; 598039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 598038#factFINAL assume true; 597363#factEXIT >#72#return; 594650#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 594651#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598506#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598503#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598402#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596503#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597276#$Ultimate##0 ~n := #in~n; 597340#L25 assume !(~n <= 0); 596401#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597629#factFINAL assume true; 597618#factEXIT >#68#return; 596867#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 597116#$Ultimate##0 ~n := #in~n; 597115#L25 assume !(~n <= 0); 596431#L26 call #t~ret0 := fact(~n - 1);< 596903#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597240#factFINAL assume true; 597122#factEXIT >#70#return; 596546#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597339#$Ultimate##0 ~n := #in~n; 597338#L25 assume !(~n <= 0); 596435#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596438#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597711#factFINAL assume true; 597683#factEXIT >#72#return; 597303#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598515#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598513#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598511#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598448#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596539#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597276#$Ultimate##0 ~n := #in~n; 597340#L25 assume !(~n <= 0); 596401#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596476#factFINAL assume true; 596469#factEXIT >#66#return; 596472#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597787#factFINAL assume true; 597715#factEXIT >#68#return; 597129#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 594718#$Ultimate##0 ~n := #in~n; 597243#L25 assume !(~n <= 0); 596392#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597439#factFINAL assume true; 597440#factEXIT >#70#return; 596467#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597287#$Ultimate##0 ~n := #in~n; 597286#L25 assume !(~n <= 0); 596407#L26 call #t~ret0 := fact(~n - 1);< 596442#$Ultimate##0 ~n := #in~n; 597334#L25 assume !(~n <= 0); 596389#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596476#factFINAL assume true; 596469#factEXIT >#66#return; 596409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597527#factFINAL assume true; 597512#factEXIT >#72#return; 597416#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598534#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598533#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598531#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596495#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597276#$Ultimate##0 ~n := #in~n; 597340#L25 assume !(~n <= 0); 596401#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597451#factFINAL assume true; 597437#factEXIT >#68#return; 596793#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 597116#$Ultimate##0 ~n := #in~n; 597115#L25 assume !(~n <= 0); 596431#L26 call #t~ret0 := fact(~n - 1);< 596903#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596942#L25 assume !(~n <= 0); 596479#L26 call #t~ret0 := fact(~n - 1);< 596762#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597451#factFINAL assume true; 597437#factEXIT >#70#return; 597039#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 597114#$Ultimate##0 ~n := #in~n; 597237#L25 assume ~n <= 0;#res := 1; 596731#factFINAL assume true; 597034#factEXIT >#72#return; 597061#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598542#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598539#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598538#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598516#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596494#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 597276#$Ultimate##0 ~n := #in~n; 597340#L25 assume !(~n <= 0); 596401#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596439#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597629#factFINAL assume true; 597618#factEXIT >#68#return; 596879#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 597116#$Ultimate##0 ~n := #in~n; 597115#L25 assume !(~n <= 0); 596431#L26 call #t~ret0 := fact(~n - 1);< 596903#$Ultimate##0 ~n := #in~n; 596939#L25 assume !(~n <= 0); 596419#L26 call #t~ret0 := fact(~n - 1);< 596759#$Ultimate##0 ~n := #in~n; 596942#L25 assume !(~n <= 0); 596479#L26 call #t~ret0 := fact(~n - 1);< 596762#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597451#factFINAL assume true; 597437#factEXIT >#70#return; 594730#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594720#$Ultimate##0 ~n := #in~n; 594736#L25 assume ~n <= 0;#res := 1; 596731#factFINAL assume true; 597034#factEXIT >#72#return; 597081#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598514#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 598512#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598510#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598433#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596164#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 596254#$Ultimate##0 ~n := #in~n; 597455#L25 assume !(~n <= 0); 596395#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#74#return; 596329#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596379#$Ultimate##0 ~n := #in~n; 598043#L25 assume !(~n <= 0); 596427#L26 call #t~ret0 := fact(~n - 1);< 596441#$Ultimate##0 ~n := #in~n; 597335#L25 assume !(~n <= 0); 596423#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596936#L25 assume !(~n <= 0); 596757#L26 call #t~ret0 := fact(~n - 1);< 596758#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597354#factFINAL assume true; 597323#factEXIT >#76#return; 594696#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596723#$Ultimate##0 ~n := #in~n; 594694#L25 assume !(~n <= 0); 594699#L26 call #t~ret0 := fact(~n - 1);< 596918#$Ultimate##0 ~n := #in~n; 597119#L25 assume ~n <= 0;#res := 1; 596944#factFINAL assume true; 596913#factEXIT >#66#return; 596911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596766#factFINAL assume true; 596688#factEXIT >#78#return; 596709#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598436#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598434#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598326#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596197#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597354#factFINAL assume true; 597323#factEXIT >#74#return; 596331#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596379#$Ultimate##0 ~n := #in~n; 598043#L25 assume !(~n <= 0); 596427#L26 call #t~ret0 := fact(~n - 1);< 596441#$Ultimate##0 ~n := #in~n; 597335#L25 assume !(~n <= 0); 596423#L26 call #t~ret0 := fact(~n - 1);< 596485#$Ultimate##0 ~n := #in~n; 597462#L25 assume !(~n <= 0); 596480#L26 call #t~ret0 := fact(~n - 1);< 596589#$Ultimate##0 ~n := #in~n; 596941#L25 assume !(~n <= 0); 596579#L26 call #t~ret0 := fact(~n - 1);< 596761#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#76#return; 596341#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 594783#$Ultimate##0 ~n := #in~n; 597461#L25 assume !(~n <= 0); 596434#L26 call #t~ret0 := fact(~n - 1);< 596687#$Ultimate##0 ~n := #in~n; 596942#L25 assume !(~n <= 0); 596479#L26 call #t~ret0 := fact(~n - 1);< 596762#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596584#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596932#factFINAL assume true; 596744#factEXIT >#78#return; 596746#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598324#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598322#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598320#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598318#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 596201#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596476#factFINAL assume true; 596469#factEXIT >#66#return; 596471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597322#factFINAL assume true; 595931#factEXIT >#74#return; 595953#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596243#$Ultimate##0 ~n := #in~n; 596938#L25 assume !(~n <= 0); 596394#L26 call #t~ret0 := fact(~n - 1);< 596442#$Ultimate##0 ~n := #in~n; 597334#L25 assume !(~n <= 0); 596389#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597321#factFINAL assume true; 597320#factEXIT >#76#return; 595956#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596222#$Ultimate##0 ~n := #in~n; 596928#L25 assume !(~n <= 0); 596400#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596573#factFINAL assume true; 596489#factEXIT >#78#return; 596361#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598171#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598170#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598132#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598129#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595985#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 594546#$Ultimate##0 ~n := #in~n; 597318#L25 assume !(~n <= 0); 596390#L26 call #t~ret0 := fact(~n - 1);< 597316#$Ultimate##0 ~n := #in~n; 597315#L25 assume !(~n <= 0); 596402#L26 call #t~ret0 := fact(~n - 1);< 597314#$Ultimate##0 ~n := #in~n; 597313#L25 assume !(~n <= 0); 596404#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596488#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596476#factFINAL assume true; 596469#factEXIT >#66#return; 596471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597322#factFINAL assume true; 595931#factEXIT >#74#return; 596024#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 596243#$Ultimate##0 ~n := #in~n; 596938#L25 assume !(~n <= 0); 596394#L26 call #t~ret0 := fact(~n - 1);< 596442#$Ultimate##0 ~n := #in~n; 597334#L25 assume !(~n <= 0); 596389#L26 call #t~ret0 := fact(~n - 1);< 596486#$Ultimate##0 ~n := #in~n; 597460#L25 assume !(~n <= 0); 596391#L26 call #t~ret0 := fact(~n - 1);< 596588#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596767#factFINAL assume true; 596732#factEXIT >#66#return; 596724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596590#factFINAL assume true; 596566#factEXIT >#66#return; 596570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 597321#factFINAL assume true; 597320#factEXIT >#76#return; 596049#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 596222#$Ultimate##0 ~n := #in~n; 596928#L25 assume !(~n <= 0); 596400#L26 call #t~ret0 := fact(~n - 1);< 596919#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596940#L25 assume !(~n <= 0); 596403#L26 call #t~ret0 := fact(~n - 1);< 596760#$Ultimate##0 ~n := #in~n; 596935#L25 assume ~n <= 0;#res := 1; 596934#factFINAL assume true; 596756#factEXIT >#66#return; 596729#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596596#factFINAL assume true; 596576#factEXIT >#66#return; 596575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596491#factFINAL assume true; 596478#factEXIT >#66#return; 596475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596445#factFINAL assume true; 596418#factEXIT >#66#return; 596414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 596378#factFINAL assume true; 596256#factEXIT >#78#return; 596208#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 598127#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 598125#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 598123#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 598118#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 595823#L30-5 [2023-02-17 09:43:08,569 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:08,569 INFO L85 PathProgramCache]: Analyzing trace with hash -426196569, now seen corresponding path program 44 times [2023-02-17 09:43:08,569 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:08,569 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1291501479] [2023-02-17 09:43:08,570 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:08,570 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:08,606 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:08,606 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [199424364] [2023-02-17 09:43:08,606 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:43:08,607 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:08,607 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:08,610 INFO L229 MonitoredProcess]: Starting monitored process 237 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:08,610 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (237)] Waiting until timeout for monitored process [2023-02-17 09:43:09,810 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:43:09,811 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:09,829 INFO L263 TraceCheckSpWp]: Trace formula consists of 4150 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:43:09,844 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:09,943 INFO L134 CoverageAnalysis]: Checked inductivity of 236860 backedges. 102338 proven. 332 refuted. 0 times theorem prover too weak. 134190 trivial. 0 not checked. [2023-02-17 09:43:09,943 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:10,081 INFO L134 CoverageAnalysis]: Checked inductivity of 236860 backedges. 1334 proven. 332 refuted. 0 times theorem prover too weak. 235194 trivial. 0 not checked. [2023-02-17 09:43:10,081 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:10,082 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1291501479] [2023-02-17 09:43:10,082 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:10,082 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [199424364] [2023-02-17 09:43:10,082 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [199424364] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:10,082 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:10,082 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:43:10,082 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [548651229] [2023-02-17 09:43:10,082 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:10,083 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:10,083 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:10,083 INFO L85 PathProgramCache]: Analyzing trace with hash 1999326764, now seen corresponding path program 38 times [2023-02-17 09:43:10,083 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:10,083 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [837820690] [2023-02-17 09:43:10,084 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:10,084 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:10,108 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:10,108 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1396160306] [2023-02-17 09:43:10,108 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:43:10,108 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:10,108 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:10,110 INFO L229 MonitoredProcess]: Starting monitored process 238 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:10,111 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (238)] Waiting until timeout for monitored process [2023-02-17 09:43:11,044 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:43:11,044 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:11,051 INFO L263 TraceCheckSpWp]: Trace formula consists of 2018 conjuncts, 31 conjunts are in the unsatisfiable core [2023-02-17 09:43:11,058 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:11,134 INFO L134 CoverageAnalysis]: Checked inductivity of 63485 backedges. 15224 proven. 672 refuted. 0 times theorem prover too weak. 47589 trivial. 0 not checked. [2023-02-17 09:43:11,135 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:11,429 INFO L134 CoverageAnalysis]: Checked inductivity of 63485 backedges. 116 proven. 9144 refuted. 0 times theorem prover too weak. 54225 trivial. 0 not checked. [2023-02-17 09:43:11,429 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:11,429 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [837820690] [2023-02-17 09:43:11,429 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:11,429 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1396160306] [2023-02-17 09:43:11,430 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1396160306] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:11,430 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:11,430 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 26] total 29 [2023-02-17 09:43:11,430 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1092837315] [2023-02-17 09:43:11,430 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:11,430 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:11,430 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:11,431 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 29 interpolants. [2023-02-17 09:43:11,431 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=133, Invalid=679, Unknown=0, NotChecked=0, Total=812 [2023-02-17 09:43:11,431 INFO L87 Difference]: Start difference. First operand 4011 states and 9165 transitions. cyclomatic complexity: 5197 Second operand has 29 states, 26 states have (on average 2.6923076923076925) internal successors, (70), 26 states have internal predecessors, (70), 17 states have call successors, (30), 2 states have call predecessors, (30), 13 states have return successors, (38), 15 states have call predecessors, (38), 17 states have call successors, (38) [2023-02-17 09:43:12,435 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:12,435 INFO L93 Difference]: Finished difference Result 4816 states and 10164 transitions. [2023-02-17 09:43:12,435 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4816 states and 10164 transitions. [2023-02-17 09:43:12,466 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 1149 [2023-02-17 09:43:12,502 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4816 states to 4755 states and 10008 transitions. [2023-02-17 09:43:12,502 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 783 [2023-02-17 09:43:12,503 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 783 [2023-02-17 09:43:12,503 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4755 states and 10008 transitions. [2023-02-17 09:43:12,503 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:12,503 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4755 states and 10008 transitions. [2023-02-17 09:43:12,504 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4755 states and 10008 transitions. [2023-02-17 09:43:12,567 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4755 to 3956. [2023-02-17 09:43:12,571 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3956 states, 2180 states have (on average 1.0440366972477064) internal successors, (2276), 2165 states have internal predecessors, (2276), 1529 states have call successors, (1566), 320 states have call predecessors, (1566), 247 states have return successors, (5130), 1470 states have call predecessors, (5130), 1529 states have call successors, (5130) [2023-02-17 09:43:12,586 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3956 states to 3956 states and 8972 transitions. [2023-02-17 09:43:12,586 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3956 states and 8972 transitions. [2023-02-17 09:43:12,587 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2023-02-17 09:43:12,587 INFO L428 stractBuchiCegarLoop]: Abstraction has 3956 states and 8972 transitions. [2023-02-17 09:43:12,587 INFO L335 stractBuchiCegarLoop]: ======== Iteration 68 ============ [2023-02-17 09:43:12,588 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3956 states and 8972 transitions. [2023-02-17 09:43:12,604 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 777 [2023-02-17 09:43:12,605 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:12,605 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:12,611 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [293, 293, 206, 206, 206, 206, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:12,611 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [151, 151, 121, 121, 121, 121, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:12,611 INFO L748 eck$LassoCheckResult]: Stem: 620872#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 620809#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 620810#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 620833#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 620873#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 621542#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 621541#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621539#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 621540#$Ultimate##0 ~n := #in~n; 621544#L25 assume ~n <= 0;#res := 1; 621543#factFINAL assume true; 621538#factEXIT >#68#return; 621501#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 621502#$Ultimate##0 ~n := #in~n; 621511#L25 assume ~n <= 0;#res := 1; 621510#factFINAL assume true; 621500#factEXIT >#70#return; 621497#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621498#$Ultimate##0 ~n := #in~n; 621513#L25 assume ~n <= 0;#res := 1; 621512#factFINAL assume true; 621496#factEXIT >#72#return; 621494#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 621490#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 621489#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 621488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 621487#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621482#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 621485#$Ultimate##0 ~n := #in~n; 621484#L25 assume !(~n <= 0); 621469#L26 call #t~ret0 := fact(~n - 1);< 621471#$Ultimate##0 ~n := #in~n; 621486#L25 assume ~n <= 0;#res := 1; 621481#factFINAL assume true; 621467#factEXIT >#66#return; 621470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621534#factFINAL assume true; 621532#factEXIT >#74#return; 621530#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 621531#$Ultimate##0 ~n := #in~n; 621536#L25 assume ~n <= 0;#res := 1; 621535#factFINAL assume true; 621529#factEXIT >#76#return; 621458#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621459#$Ultimate##0 ~n := #in~n; 621473#L25 assume !(~n <= 0); 621468#L26 call #t~ret0 := fact(~n - 1);< 621471#$Ultimate##0 ~n := #in~n; 621486#L25 assume ~n <= 0;#res := 1; 621481#factFINAL assume true; 621467#factEXIT >#66#return; 621466#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621465#factFINAL assume true; 621457#factEXIT >#78#return; 621455#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 621453#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 621450#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 621448#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 621446#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621432#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 621434#$Ultimate##0 ~n := #in~n; 621443#L25 assume !(~n <= 0); 621439#L26 call #t~ret0 := fact(~n - 1);< 621441#$Ultimate##0 ~n := #in~n; 621483#L25 assume !(~n <= 0); 621440#L26 call #t~ret0 := fact(~n - 1);< 621480#$Ultimate##0 ~n := #in~n; 621526#L25 assume ~n <= 0;#res := 1; 621523#factFINAL assume true; 621519#factEXIT >#66#return; 621516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621491#factFINAL assume true; 621476#factEXIT >#66#return; 621479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621507#factFINAL assume true; 621506#factEXIT >#74#return; 621504#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 621505#$Ultimate##0 ~n := #in~n; 621509#L25 assume ~n <= 0;#res := 1; 621508#factFINAL assume true; 621503#factEXIT >#76#return; 621492#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621499#$Ultimate##0 ~n := #in~n; 621495#L25 assume !(~n <= 0); 621477#L26 call #t~ret0 := fact(~n - 1);< 621493#$Ultimate##0 ~n := #in~n; 621524#L25 assume !(~n <= 0); 621520#L26 call #t~ret0 := fact(~n - 1);< 621521#$Ultimate##0 ~n := #in~n; 621526#L25 assume ~n <= 0;#res := 1; 621523#factFINAL assume true; 621519#factEXIT >#66#return; 621516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621491#factFINAL assume true; 621476#factEXIT >#66#return; 621478#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621537#factFINAL assume true; 621528#factEXIT >#78#return; 621527#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 621525#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 621522#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 621518#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 621515#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621433#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 621434#$Ultimate##0 ~n := #in~n; 621443#L25 assume !(~n <= 0); 621439#L26 call #t~ret0 := fact(~n - 1);< 621441#$Ultimate##0 ~n := #in~n; 621483#L25 assume !(~n <= 0); 621440#L26 call #t~ret0 := fact(~n - 1);< 621480#$Ultimate##0 ~n := #in~n; 621483#L25 assume !(~n <= 0); 621440#L26 call #t~ret0 := fact(~n - 1);< 621480#$Ultimate##0 ~n := #in~n; 621526#L25 assume ~n <= 0;#res := 1; 621523#factFINAL assume true; 621519#factEXIT >#66#return; 621516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621491#factFINAL assume true; 621476#factEXIT >#66#return; 621475#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621474#factFINAL assume true; 621438#factEXIT >#66#return; 621437#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621436#factFINAL assume true; 621431#factEXIT >#74#return; 621429#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 621430#$Ultimate##0 ~n := #in~n; 621464#L25 assume ~n <= 0;#res := 1; 621463#factFINAL assume true; 621428#factEXIT >#76#return; 621419#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621425#$Ultimate##0 ~n := #in~n; 621422#L25 assume !(~n <= 0); 621409#L26 call #t~ret0 := fact(~n - 1);< 621420#$Ultimate##0 ~n := #in~n; 621462#L25 assume !(~n <= 0); 621411#L26 call #t~ret0 := fact(~n - 1);< 621413#$Ultimate##0 ~n := #in~n; 621472#L25 assume !(~n <= 0); 621408#L26 call #t~ret0 := fact(~n - 1);< 621452#$Ultimate##0 ~n := #in~n; 621517#L25 assume ~n <= 0;#res := 1; 621514#factFINAL assume true; 621451#factEXIT >#66#return; 621449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621447#factFINAL assume true; 621445#factEXIT >#66#return; 621444#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621442#factFINAL assume true; 621424#factEXIT >#66#return; 621412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621655#factFINAL assume true; 621533#factEXIT >#78#return; 621460#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 621456#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 621454#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 621414#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 621403#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 621399#$Ultimate##0 ~n := #in~n; 621423#L25 assume !(~n <= 0); 621410#L26 call #t~ret0 := fact(~n - 1);< 621413#$Ultimate##0 ~n := #in~n; 621472#L25 assume !(~n <= 0); 621408#L26 call #t~ret0 := fact(~n - 1);< 621452#$Ultimate##0 ~n := #in~n; 621472#L25 assume !(~n <= 0); 621408#L26 call #t~ret0 := fact(~n - 1);< 621452#$Ultimate##0 ~n := #in~n; 621472#L25 assume !(~n <= 0); 621408#L26 call #t~ret0 := fact(~n - 1);< 621452#$Ultimate##0 ~n := #in~n; 621517#L25 assume ~n <= 0;#res := 1; 621514#factFINAL assume true; 621451#factEXIT >#66#return; 621449#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621447#factFINAL assume true; 621445#factEXIT >#66#return; 621444#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621442#factFINAL assume true; 621424#factEXIT >#66#return; 621421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621418#factFINAL assume true; 621407#factEXIT >#66#return; 621406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621402#factFINAL assume true; 621397#factEXIT >#74#return; 621394#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 621395#$Ultimate##0 ~n := #in~n; 621705#L25 assume ~n <= 0;#res := 1; 621545#factFINAL assume true; 621393#factEXIT >#76#return; 621384#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621390#$Ultimate##0 ~n := #in~n; 621387#L25 assume !(~n <= 0); 621364#L26 call #t~ret0 := fact(~n - 1);< 621385#$Ultimate##0 ~n := #in~n; 621416#L25 assume !(~n <= 0); 621366#L26 call #t~ret0 := fact(~n - 1);< 621389#$Ultimate##0 ~n := #in~n; 621417#L25 assume !(~n <= 0); 621367#L26 call #t~ret0 := fact(~n - 1);< 621405#$Ultimate##0 ~n := #in~n; 621417#L25 assume !(~n <= 0); 621367#L26 call #t~ret0 := fact(~n - 1);< 621405#$Ultimate##0 ~n := #in~n; 621461#L25 assume ~n <= 0;#res := 1; 621415#factFINAL assume true; 621404#factEXIT >#66#return; 621401#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621400#factFINAL assume true; 621396#factEXIT >#66#return; 621392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621391#factFINAL assume true; 621388#factEXIT >#66#return; 621386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621383#factFINAL assume true; 621380#factEXIT >#66#return; 621381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621672#factFINAL assume true; 621671#factEXIT >#78#return; 621670#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 621669#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 621667#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 621663#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 621063#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621057#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 621058#$Ultimate##0 ~n := #in~n; 621079#L25 assume !(~n <= 0); 621075#L26 call #t~ret0 := fact(~n - 1);< 621076#$Ultimate##0 ~n := #in~n; 621091#L25 assume !(~n <= 0); 621087#L26 call #t~ret0 := fact(~n - 1);< 621088#$Ultimate##0 ~n := #in~n; 621104#L25 assume !(~n <= 0); 621099#L26 call #t~ret0 := fact(~n - 1);< 621101#$Ultimate##0 ~n := #in~n; 621116#L25 assume !(~n <= 0); 621100#L26 call #t~ret0 := fact(~n - 1);< 621113#$Ultimate##0 ~n := #in~n; 621116#L25 assume !(~n <= 0); 621100#L26 call #t~ret0 := fact(~n - 1);< 621113#$Ultimate##0 ~n := #in~n; 621126#L25 assume ~n <= 0;#res := 1; 621124#factFINAL assume true; 621122#factEXIT >#66#return; 621119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621115#factFINAL assume true; 621112#factEXIT >#66#return; 621109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621103#factFINAL assume true; 621098#factEXIT >#66#return; 621095#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621090#factFINAL assume true; 621086#factEXIT >#66#return; 621083#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621078#factFINAL assume true; 621074#factEXIT >#66#return; 621069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621062#factFINAL assume true; 621056#factEXIT >#74#return; 621054#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 621055#$Ultimate##0 ~n := #in~n; 621134#L25 assume ~n <= 0;#res := 1; 621132#factFINAL assume true; 621053#factEXIT >#76#return; 621045#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621049#$Ultimate##0 ~n := #in~n; 621046#L25 assume !(~n <= 0); 621013#L26 call #t~ret0 := fact(~n - 1);< 621043#$Ultimate##0 ~n := #in~n; 621150#L25 assume !(~n <= 0); 621017#L26 call #t~ret0 := fact(~n - 1);< 621052#$Ultimate##0 ~n := #in~n; 621173#L25 assume !(~n <= 0); 621019#L26 call #t~ret0 := fact(~n - 1);< 621138#$Ultimate##0 ~n := #in~n; 621179#L25 assume !(~n <= 0); 621021#L26 call #t~ret0 := fact(~n - 1);< 621038#$Ultimate##0 ~n := #in~n; 621180#L25 assume !(~n <= 0); 621023#L26 call #t~ret0 := fact(~n - 1);< 621175#$Ultimate##0 ~n := #in~n; 621181#L25 assume ~n <= 0;#res := 1; 621178#factFINAL assume true; 621174#factEXIT >#66#return; 621168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621165#factFINAL assume true; 621158#factEXIT >#66#return; 621154#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621152#factFINAL assume true; 621137#factEXIT >#66#return; 621136#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621129#factFINAL assume true; 621051#factEXIT >#66#return; 621048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621044#factFINAL assume true; 621042#factEXIT >#66#return; 621026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621235#factFINAL assume true; 621211#factEXIT >#78#return; 620992#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 620991#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 620990#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 620989#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 620988#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 620987#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 620986#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 620985#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 620953#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620980#$Ultimate##0 ~n := #in~n; 620984#L25 assume !(~n <= 0); 621830#L26 call #t~ret0 := fact(~n - 1);< 621831#$Ultimate##0 ~n := #in~n; 621833#L25 assume ~n <= 0;#res := 1; 621832#factFINAL assume true; 621829#factEXIT >#66#return; 621828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 621827#factFINAL assume true; 621826#factEXIT >#68#return; 620956#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620982#$Ultimate##0 ~n := #in~n; 620983#L25 assume ~n <= 0;#res := 1; 620981#factFINAL assume true; 620932#factEXIT >#70#return; 620975#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621825#$Ultimate##0 ~n := #in~n; 621824#L25 assume !(~n <= 0); 620819#L26 call #t~ret0 := fact(~n - 1);< 621822#$Ultimate##0 ~n := #in~n; 621818#L25 assume ~n <= 0;#res := 1; 621819#factFINAL assume true; 621816#factEXIT >#66#return; 621817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623193#factFINAL assume true; 623145#factEXIT >#72#return; 623142#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 623140#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 623139#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 623136#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 623134#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622957#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623133#$Ultimate##0 ~n := #in~n; 623141#L25 assume !(~n <= 0); 622537#L26 call #t~ret0 := fact(~n - 1);< 622702#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622698#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623135#factFINAL assume true; 622871#factEXIT >#68#return; 622959#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 623132#$Ultimate##0 ~n := #in~n; 623282#L25 assume !(~n <= 0); 622697#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622698#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623135#factFINAL assume true; 622871#factEXIT >#70#return; 622790#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622870#$Ultimate##0 ~n := #in~n; 623182#L25 assume ~n <= 0;#res := 1; 623137#factFINAL assume true; 622789#factEXIT >#72#return; 622787#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 622786#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 622785#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 622784#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 622783#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622102#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 622352#$Ultimate##0 ~n := #in~n; 622704#L25 assume !(~n <= 0); 622549#L26 call #t~ret0 := fact(~n - 1);< 622702#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#74#return; 622649#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622669#$Ultimate##0 ~n := #in~n; 624260#L25 assume !(~n <= 0); 622696#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#76#return; 622641#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622669#$Ultimate##0 ~n := #in~n; 624260#L25 assume !(~n <= 0); 622696#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#78#return; 622654#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 623164#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 623162#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 623159#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 623158#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622477#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 622532#$Ultimate##0 ~n := #in~n; 623371#L25 assume !(~n <= 0); 622561#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622612#factFINAL assume true; 622605#factEXIT >#74#return; 622607#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622669#$Ultimate##0 ~n := #in~n; 624260#L25 assume !(~n <= 0); 622696#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#76#return; 622635#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 620877#$Ultimate##0 ~n := #in~n; 623490#L25 assume !(~n <= 0); 620852#L26 call #t~ret0 := fact(~n - 1);< 623179#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#78#return; 623150#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 623170#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 623169#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 623168#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 622709#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622496#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 622532#$Ultimate##0 ~n := #in~n; 623371#L25 assume !(~n <= 0); 622561#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#74#return; 622528#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622669#$Ultimate##0 ~n := #in~n; 624260#L25 assume !(~n <= 0); 622696#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#76#return; 622499#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622534#$Ultimate##0 ~n := #in~n; 623590#L25 assume !(~n <= 0); 622595#L26 call #t~ret0 := fact(~n - 1);< 622603#$Ultimate##0 ~n := #in~n; 623413#L25 assume !(~n <= 0); 623174#L26 call #t~ret0 := fact(~n - 1);< 623363#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622612#factFINAL assume true; 622605#factEXIT >#78#return; 622610#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 622691#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 622690#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 622687#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 622685#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622309#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#74#return; 622640#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622669#$Ultimate##0 ~n := #in~n; 624260#L25 assume !(~n <= 0); 622696#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#76#return; 622506#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622534#$Ultimate##0 ~n := #in~n; 623590#L25 assume !(~n <= 0); 622595#L26 call #t~ret0 := fact(~n - 1);< 622603#$Ultimate##0 ~n := #in~n; 623413#L25 assume !(~n <= 0); 623174#L26 call #t~ret0 := fact(~n - 1);< 623363#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#78#return; 622335#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 622613#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 622414#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 622412#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 622407#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622010#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620622#$Ultimate##0 ~n := #in~n; 622396#L25 assume !(~n <= 0); 622031#L26 call #t~ret0 := fact(~n - 1);< 622072#$Ultimate##0 ~n := #in~n; 622398#L25 assume !(~n <= 0); 622032#L26 call #t~ret0 := fact(~n - 1);< 622357#$Ultimate##0 ~n := #in~n; 622395#L25 assume !(~n <= 0); 622033#L26 call #t~ret0 := fact(~n - 1);< 622055#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622069#factFINAL assume true; 622062#factEXIT >#66#return; 622059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622054#factFINAL assume true; 622047#factEXIT >#66#return; 622048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622364#factFINAL assume true; 622355#factEXIT >#66#return; 622076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622071#factFINAL assume true; 622065#factEXIT >#66#return; 622066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623285#factFINAL assume true; 622405#factEXIT >#74#return; 622371#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622373#$Ultimate##0 ~n := #in~n; 624160#L25 assume !(~n <= 0); 622380#L26 call #t~ret0 := fact(~n - 1);< 622381#$Ultimate##0 ~n := #in~n; 622384#L25 assume ~n <= 0;#res := 1; 622383#factFINAL assume true; 622379#factEXIT >#66#return; 622378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622376#factFINAL assume true; 622370#factEXIT >#76#return; 621918#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622386#$Ultimate##0 ~n := #in~n; 622385#L25 assume !(~n <= 0); 622036#L26 call #t~ret0 := fact(~n - 1);< 622070#$Ultimate##0 ~n := #in~n; 622382#L25 assume !(~n <= 0); 622038#L26 call #t~ret0 := fact(~n - 1);< 622055#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622069#factFINAL assume true; 622062#factEXIT >#66#return; 622059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622054#factFINAL assume true; 622047#factEXIT >#66#return; 622048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622364#factFINAL assume true; 622355#factEXIT >#66#return; 622076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622071#factFINAL assume true; 622065#factEXIT >#66#return; 622066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623285#factFINAL assume true; 622405#factEXIT >#78#return; 621982#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 623166#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 623165#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 623163#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 622623#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 621853#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 621838#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 621821#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 620661#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620662#$Ultimate##0 ~n := #in~n; 622774#L25 assume !(~n <= 0); 621844#L26 call #t~ret0 := fact(~n - 1);< 622773#$Ultimate##0 ~n := #in~n; 621834#L25 assume !(~n <= 0); 621845#L26 call #t~ret0 := fact(~n - 1);< 622780#$Ultimate##0 ~n := #in~n; 622782#L25 assume ~n <= 0;#res := 1; 622781#factFINAL assume true; 622779#factEXIT >#66#return; 622777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622772#factFINAL assume true; 622706#factEXIT >#66#return; 622707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623761#factFINAL assume true; 623754#factEXIT >#68#return; 620965#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620982#$Ultimate##0 ~n := #in~n; 620983#L25 assume ~n <= 0;#res := 1; 620981#factFINAL assume true; 620932#factEXIT >#70#return; 620893#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 620894#$Ultimate##0 ~n := #in~n; 620913#L25 assume !(~n <= 0); 620816#L26 call #t~ret0 := fact(~n - 1);< 620912#$Ultimate##0 ~n := #in~n; 621823#L25 assume !(~n <= 0); 620815#L26 call #t~ret0 := fact(~n - 1);< 620820#$Ultimate##0 ~n := #in~n; 620843#L25 assume ~n <= 0;#res := 1; 620847#factFINAL assume true; 624145#factEXIT >#66#return; 621820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 620914#factFINAL assume true; 620917#factEXIT >#66#return; 621991#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623787#factFINAL assume true; 623779#factEXIT >#72#return; 623781#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624300#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624301#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624288#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624289#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 623202#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623272#$Ultimate##0 ~n := #in~n; 623271#L25 assume !(~n <= 0); 622550#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623473#factFINAL assume true; 623474#factEXIT >#68#return; 622927#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620859#$Ultimate##0 ~n := #in~n; 623275#L25 assume !(~n <= 0); 622592#L26 call #t~ret0 := fact(~n - 1);< 623218#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622698#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623135#factFINAL assume true; 622871#factEXIT >#70#return; 622749#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623138#$Ultimate##0 ~n := #in~n; 624263#L25 assume !(~n <= 0); 622695#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623551#factFINAL assume true; 623531#factEXIT >#72#return; 623532#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624304#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624294#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624295#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624283#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 623200#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623272#$Ultimate##0 ~n := #in~n; 623271#L25 assume !(~n <= 0); 622550#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623473#factFINAL assume true; 623474#factEXIT >#68#return; 622930#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620859#$Ultimate##0 ~n := #in~n; 623275#L25 assume !(~n <= 0); 622592#L26 call #t~ret0 := fact(~n - 1);< 623218#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623473#factFINAL assume true; 623474#factEXIT >#70#return; 622756#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623138#$Ultimate##0 ~n := #in~n; 624263#L25 assume ~n <= 0;#res := 1; 623137#factFINAL assume true; 622789#factEXIT >#72#return; 622827#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624340#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624338#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624267#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 623528#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622457#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 622532#$Ultimate##0 ~n := #in~n; 623371#L25 assume !(~n <= 0); 622561#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622612#factFINAL assume true; 622605#factEXIT >#74#return; 622456#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620870#$Ultimate##0 ~n := #in~n; 623181#L25 assume !(~n <= 0); 622596#L26 call #t~ret0 := fact(~n - 1);< 623180#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#76#return; 622637#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 620877#$Ultimate##0 ~n := #in~n; 623490#L25 assume !(~n <= 0); 620852#L26 call #t~ret0 := fact(~n - 1);< 623179#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#78#return; 622665#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624121#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624118#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624115#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624112#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622455#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 622532#$Ultimate##0 ~n := #in~n; 623371#L25 assume !(~n <= 0); 622561#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#74#return; 620869#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620870#$Ultimate##0 ~n := #in~n; 623181#L25 assume !(~n <= 0); 622596#L26 call #t~ret0 := fact(~n - 1);< 623180#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#76#return; 620876#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 620877#$Ultimate##0 ~n := #in~n; 623490#L25 assume !(~n <= 0); 620852#L26 call #t~ret0 := fact(~n - 1);< 623179#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#78#return; 623155#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624343#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624342#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624341#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624339#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622235#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#74#return; 622459#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620870#$Ultimate##0 ~n := #in~n; 623181#L25 assume !(~n <= 0); 622596#L26 call #t~ret0 := fact(~n - 1);< 623180#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#76#return; 622460#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622534#$Ultimate##0 ~n := #in~n; 623590#L25 assume !(~n <= 0); 622595#L26 call #t~ret0 := fact(~n - 1);< 622603#$Ultimate##0 ~n := #in~n; 623413#L25 assume !(~n <= 0); 623174#L26 call #t~ret0 := fact(~n - 1);< 623363#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#78#return; 622524#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624253#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624252#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624251#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624250#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622261#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#74#return; 622465#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620870#$Ultimate##0 ~n := #in~n; 623181#L25 assume !(~n <= 0); 622596#L26 call #t~ret0 := fact(~n - 1);< 623180#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#76#return; 622463#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622534#$Ultimate##0 ~n := #in~n; 623590#L25 assume !(~n <= 0); 622595#L26 call #t~ret0 := fact(~n - 1);< 622603#$Ultimate##0 ~n := #in~n; 623413#L25 assume !(~n <= 0); 623174#L26 call #t~ret0 := fact(~n - 1);< 623363#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#78#return; 622337#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624239#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624236#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624233#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624226#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621997#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620622#$Ultimate##0 ~n := #in~n; 622396#L25 assume !(~n <= 0); 622031#L26 call #t~ret0 := fact(~n - 1);< 622072#$Ultimate##0 ~n := #in~n; 622398#L25 assume !(~n <= 0); 622032#L26 call #t~ret0 := fact(~n - 1);< 622357#$Ultimate##0 ~n := #in~n; 622395#L25 assume !(~n <= 0); 622033#L26 call #t~ret0 := fact(~n - 1);< 622055#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622069#factFINAL assume true; 622062#factEXIT >#66#return; 622059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622054#factFINAL assume true; 622047#factEXIT >#66#return; 622048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622364#factFINAL assume true; 622355#factEXIT >#66#return; 622076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622071#factFINAL assume true; 622065#factEXIT >#66#return; 622060#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622056#factFINAL assume true; 622050#factEXIT >#66#return; 622040#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622042#factFINAL assume true; 622021#factEXIT >#66#return; 622020#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622018#factFINAL assume true; 621996#factEXIT >#74#return; 621929#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622363#$Ultimate##0 ~n := #in~n; 622361#L25 assume !(~n <= 0); 622034#L26 call #t~ret0 := fact(~n - 1);< 622360#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622354#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624006#factFINAL assume true; 624005#factEXIT >#76#return; 621950#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622397#$Ultimate##0 ~n := #in~n; 622394#L25 assume !(~n <= 0); 622039#L26 call #t~ret0 := fact(~n - 1);< 622365#$Ultimate##0 ~n := #in~n; 622392#L25 assume !(~n <= 0); 622026#L26 call #t~ret0 := fact(~n - 1);< 622375#$Ultimate##0 ~n := #in~n; 622374#L25 assume !(~n <= 0); 622022#L26 call #t~ret0 := fact(~n - 1);< 622064#$Ultimate##0 ~n := #in~n; 622382#L25 assume !(~n <= 0); 622038#L26 call #t~ret0 := fact(~n - 1);< 622055#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622069#factFINAL assume true; 622062#factEXIT >#66#return; 622059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622054#factFINAL assume true; 622047#factEXIT >#66#return; 622048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622364#factFINAL assume true; 622355#factEXIT >#66#return; 622076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622071#factFINAL assume true; 622065#factEXIT >#66#return; 622066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623285#factFINAL assume true; 622405#factEXIT >#78#return; 621984#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624224#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624222#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624220#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 624218#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 624216#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 624125#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 623938#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621805#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620662#$Ultimate##0 ~n := #in~n; 622774#L25 assume !(~n <= 0); 621844#L26 call #t~ret0 := fact(~n - 1);< 622773#$Ultimate##0 ~n := #in~n; 621834#L25 assume !(~n <= 0); 621845#L26 call #t~ret0 := fact(~n - 1);< 622780#$Ultimate##0 ~n := #in~n; 622782#L25 assume ~n <= 0;#res := 1; 622781#factFINAL assume true; 622779#factEXIT >#66#return; 622777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622772#factFINAL assume true; 622706#factEXIT >#66#return; 622707#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623761#factFINAL assume true; 623754#factEXIT >#68#return; 620949#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620982#$Ultimate##0 ~n := #in~n; 620983#L25 assume ~n <= 0;#res := 1; 620981#factFINAL assume true; 620932#factEXIT >#70#return; 620911#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623751#$Ultimate##0 ~n := #in~n; 623812#L25 assume !(~n <= 0); 620824#L26 call #t~ret0 := fact(~n - 1);< 623807#$Ultimate##0 ~n := #in~n; 624021#L25 assume !(~n <= 0); 620821#L26 call #t~ret0 := fact(~n - 1);< 620825#$Ultimate##0 ~n := #in~n; 623827#L25 assume ~n <= 0;#res := 1; 623826#factFINAL assume true; 623819#factEXIT >#66#return; 623816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623811#factFINAL assume true; 623805#factEXIT >#66#return; 623806#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623840#factFINAL assume true; 623745#factEXIT >#72#return; 623750#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624077#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624078#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624073#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624074#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 620626#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623736#$Ultimate##0 ~n := #in~n; 623848#L25 assume !(~n <= 0); 623563#L26 call #t~ret0 := fact(~n - 1);< 623846#$Ultimate##0 ~n := #in~n; 623857#L25 assume !(~n <= 0); 623566#L26 call #t~ret0 := fact(~n - 1);< 623856#$Ultimate##0 ~n := #in~n; 623859#L25 assume ~n <= 0;#res := 1; 623858#factFINAL assume true; 623855#factEXIT >#66#return; 623854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623852#factFINAL assume true; 623844#factEXIT >#66#return; 623842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623739#factFINAL assume true; 623735#factEXIT >#68#return; 623453#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620857#$Ultimate##0 ~n := #in~n; 623555#L25 assume ~n <= 0;#res := 1; 623553#factFINAL assume true; 623438#factEXIT >#70#return; 620861#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 620658#$Ultimate##0 ~n := #in~n; 620865#L25 assume !(~n <= 0); 620853#L26 call #t~ret0 := fact(~n - 1);< 620866#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623851#factFINAL assume true; 623732#factEXIT >#72#return; 623734#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624066#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624067#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624059#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624060#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 623215#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623272#$Ultimate##0 ~n := #in~n; 623271#L25 assume !(~n <= 0); 622550#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623478#factFINAL assume true; 623401#factEXIT >#68#return; 623017#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620859#$Ultimate##0 ~n := #in~n; 623275#L25 assume !(~n <= 0); 622592#L26 call #t~ret0 := fact(~n - 1);< 623218#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623473#factFINAL assume true; 623474#factEXIT >#70#return; 620747#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623488#$Ultimate##0 ~n := #in~n; 623491#L25 assume ~n <= 0;#res := 1; 623137#factFINAL assume true; 622789#factEXIT >#72#return; 622856#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624061#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624062#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624054#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624055#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 623327#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623475#$Ultimate##0 ~n := #in~n; 623373#L25 assume !(~n <= 0); 622548#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623591#factFINAL assume true; 623505#factEXIT >#68#return; 622889#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620859#$Ultimate##0 ~n := #in~n; 623275#L25 assume !(~n <= 0); 622592#L26 call #t~ret0 := fact(~n - 1);< 623218#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623478#factFINAL assume true; 623401#factEXIT >#70#return; 622743#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623138#$Ultimate##0 ~n := #in~n; 624263#L25 assume ~n <= 0;#res := 1; 623137#factFINAL assume true; 622789#factEXIT >#72#return; 622808#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 623652#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 623651#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 623649#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 623645#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622175#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 622533#$Ultimate##0 ~n := #in~n; 623370#L25 assume !(~n <= 0); 622559#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#74#return; 622461#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622711#$Ultimate##0 ~n := #in~n; 623368#L25 assume !(~n <= 0); 622597#L26 call #t~ret0 := fact(~n - 1);< 623192#$Ultimate##0 ~n := #in~n; 623262#L25 assume !(~n <= 0); 622593#L26 call #t~ret0 := fact(~n - 1);< 623261#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622612#factFINAL assume true; 622605#factEXIT >#76#return; 622611#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622669#$Ultimate##0 ~n := #in~n; 624260#L25 assume !(~n <= 0); 622696#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#78#return; 622659#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 623641#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 623639#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 623637#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 623636#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622294#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#74#return; 622483#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622711#$Ultimate##0 ~n := #in~n; 623368#L25 assume !(~n <= 0); 622597#L26 call #t~ret0 := fact(~n - 1);< 623192#$Ultimate##0 ~n := #in~n; 623262#L25 assume !(~n <= 0); 622593#L26 call #t~ret0 := fact(~n - 1);< 623261#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622612#factFINAL assume true; 622605#factEXIT >#76#return; 622489#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622771#$Ultimate##0 ~n := #in~n; 622769#L25 assume !(~n <= 0); 622581#L26 call #t~ret0 := fact(~n - 1);< 622700#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#78#return; 623148#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624325#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624324#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624323#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624322#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622325#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#74#return; 622426#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622711#$Ultimate##0 ~n := #in~n; 623368#L25 assume !(~n <= 0); 622597#L26 call #t~ret0 := fact(~n - 1);< 623192#$Ultimate##0 ~n := #in~n; 623262#L25 assume !(~n <= 0); 622593#L26 call #t~ret0 := fact(~n - 1);< 623261#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623483#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622612#factFINAL assume true; 622605#factEXIT >#76#return; 622431#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622771#$Ultimate##0 ~n := #in~n; 622769#L25 assume !(~n <= 0); 622581#L26 call #t~ret0 := fact(~n - 1);< 622700#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#78#return; 622516#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624336#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624332#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624329#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624318#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622116#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623227#factFINAL assume true; 623220#factEXIT >#66#return; 622715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622674#factFINAL assume true; 622614#factEXIT >#66#return; 622564#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622572#factFINAL assume true; 622535#factEXIT >#66#return; 622530#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622423#factFINAL assume true; 622415#factEXIT >#74#return; 622141#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622533#$Ultimate##0 ~n := #in~n; 623370#L25 assume !(~n <= 0); 622559#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#76#return; 622139#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622352#$Ultimate##0 ~n := #in~n; 622704#L25 assume !(~n <= 0); 622549#L26 call #t~ret0 := fact(~n - 1);< 622702#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#78#return; 622339#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624315#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624314#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624313#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624312#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622011#L30-5 [2023-02-17 09:43:12,612 INFO L750 eck$LassoCheckResult]: Loop: 622011#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620622#$Ultimate##0 ~n := #in~n; 622396#L25 assume !(~n <= 0); 622031#L26 call #t~ret0 := fact(~n - 1);< 622072#$Ultimate##0 ~n := #in~n; 622398#L25 assume !(~n <= 0); 622032#L26 call #t~ret0 := fact(~n - 1);< 622357#$Ultimate##0 ~n := #in~n; 622395#L25 assume !(~n <= 0); 622033#L26 call #t~ret0 := fact(~n - 1);< 622055#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622069#factFINAL assume true; 622062#factEXIT >#66#return; 622059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622054#factFINAL assume true; 622047#factEXIT >#66#return; 622048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622364#factFINAL assume true; 622355#factEXIT >#66#return; 622076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622071#factFINAL assume true; 622065#factEXIT >#66#return; 622060#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622056#factFINAL assume true; 622050#factEXIT >#66#return; 622051#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622410#factFINAL assume true; 622411#factEXIT >#74#return; 621924#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620875#$Ultimate##0 ~n := #in~n; 622400#L25 assume !(~n <= 0); 622029#L26 call #t~ret0 := fact(~n - 1);< 622049#$Ultimate##0 ~n := #in~n; 622374#L25 assume !(~n <= 0); 622022#L26 call #t~ret0 := fact(~n - 1);< 622064#$Ultimate##0 ~n := #in~n; 622382#L25 assume !(~n <= 0); 622038#L26 call #t~ret0 := fact(~n - 1);< 622055#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622069#factFINAL assume true; 622062#factEXIT >#66#return; 622059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622054#factFINAL assume true; 622047#factEXIT >#66#return; 622048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622364#factFINAL assume true; 622355#factEXIT >#66#return; 622356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622406#factFINAL assume true; 621912#factEXIT >#76#return; 621930#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621990#$Ultimate##0 ~n := #in~n; 622391#L25 assume !(~n <= 0); 622035#L26 call #t~ret0 := fact(~n - 1);< 622390#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622389#L25 assume !(~n <= 0); 622027#L26 call #t~ret0 := fact(~n - 1);< 622369#$Ultimate##0 ~n := #in~n; 622388#L25 assume ~n <= 0;#res := 1; 622387#factFINAL assume true; 622368#factEXIT >#66#return; 622362#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622359#factFINAL assume true; 622353#factEXIT >#66#return; 622075#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622069#factFINAL assume true; 622062#factEXIT >#66#return; 622059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622054#factFINAL assume true; 622047#factEXIT >#66#return; 622048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622364#factFINAL assume true; 622355#factEXIT >#66#return; 622356#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622406#factFINAL assume true; 621912#factEXIT >#78#return; 621983#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624305#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624302#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624296#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 624290#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 624284#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 624271#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 623963#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 621808#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 621812#$Ultimate##0 ~n := #in~n; 622775#L25 assume !(~n <= 0); 621848#L26 call #t~ret0 := fact(~n - 1);< 622624#$Ultimate##0 ~n := #in~n; 622788#L25 assume !(~n <= 0); 621841#L26 call #t~ret0 := fact(~n - 1);< 622708#$Ultimate##0 ~n := #in~n; 621834#L25 assume !(~n <= 0); 621845#L26 call #t~ret0 := fact(~n - 1);< 622780#$Ultimate##0 ~n := #in~n; 621834#L25 assume !(~n <= 0); 621845#L26 call #t~ret0 := fact(~n - 1);< 622780#$Ultimate##0 ~n := #in~n; 621834#L25 assume !(~n <= 0); 621845#L26 call #t~ret0 := fact(~n - 1);< 622780#$Ultimate##0 ~n := #in~n; 622782#L25 assume ~n <= 0;#res := 1; 622781#factFINAL assume true; 622779#factEXIT >#66#return; 622777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622772#factFINAL assume true; 622706#factEXIT >#66#return; 622705#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622703#factFINAL assume true; 622688#factEXIT >#66#return; 622686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622684#factFINAL assume true; 622680#factEXIT >#66#return; 622678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622677#factFINAL assume true; 622671#factEXIT >#66#return; 622672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623882#factFINAL assume true; 623878#factEXIT >#68#return; 620957#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620982#$Ultimate##0 ~n := #in~n; 620983#L25 assume ~n <= 0;#res := 1; 620981#factFINAL assume true; 620932#factEXIT >#70#return; 620976#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 621906#$Ultimate##0 ~n := #in~n; 623974#L25 assume !(~n <= 0); 623698#L26 call #t~ret0 := fact(~n - 1);< 623713#$Ultimate##0 ~n := #in~n; 623798#L25 assume !(~n <= 0); 623708#L26 call #t~ret0 := fact(~n - 1);< 623772#$Ultimate##0 ~n := #in~n; 623813#L25 assume !(~n <= 0); 623766#L26 call #t~ret0 := fact(~n - 1);< 623794#$Ultimate##0 ~n := #in~n; 623828#L25 assume !(~n <= 0); 623792#L26 call #t~ret0 := fact(~n - 1);< 623809#$Ultimate##0 ~n := #in~n; 623831#L25 assume !(~n <= 0); 620823#L26 call #t~ret0 := fact(~n - 1);< 623820#$Ultimate##0 ~n := #in~n; 623827#L25 assume ~n <= 0;#res := 1; 623826#factFINAL assume true; 623819#factEXIT >#66#return; 623816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623811#factFINAL assume true; 623805#factEXIT >#66#return; 623803#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623799#factFINAL assume true; 623789#factEXIT >#66#return; 623788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623777#factFINAL assume true; 623765#factEXIT >#66#return; 623755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623712#factFINAL assume true; 623705#factEXIT >#66#return; 623709#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624417#factFINAL assume true; 624413#factEXIT >#72#return; 620651#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624511#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624509#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624507#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624505#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 620634#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620663#$Ultimate##0 ~n := #in~n; 623837#L25 assume !(~n <= 0); 623564#L26 call #t~ret0 := fact(~n - 1);< 623580#$Ultimate##0 ~n := #in~n; 624214#L25 assume !(~n <= 0); 623570#L26 call #t~ret0 := fact(~n - 1);< 623846#$Ultimate##0 ~n := #in~n; 623857#L25 assume !(~n <= 0); 623566#L26 call #t~ret0 := fact(~n - 1);< 623856#$Ultimate##0 ~n := #in~n; 623859#L25 assume ~n <= 0;#res := 1; 623858#factFINAL assume true; 623855#factEXIT >#66#return; 623854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623852#factFINAL assume true; 623844#factEXIT >#66#return; 623845#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624099#factFINAL assume true; 624097#factEXIT >#66#return; 624085#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624401#factFINAL assume true; 624397#factEXIT >#68#return; 623449#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620857#$Ultimate##0 ~n := #in~n; 623555#L25 assume ~n <= 0;#res := 1; 623553#factFINAL assume true; 623438#factEXIT >#70#return; 623269#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623304#$Ultimate##0 ~n := #in~n; 623286#L25 assume !(~n <= 0); 622594#L26 call #t~ret0 := fact(~n - 1);< 623264#$Ultimate##0 ~n := #in~n; 623263#L25 assume !(~n <= 0); 622587#L26 call #t~ret0 := fact(~n - 1);< 623180#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624421#factFINAL assume true; 624387#factEXIT >#72#return; 623540#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624503#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624501#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624499#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624495#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 623337#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623475#$Ultimate##0 ~n := #in~n; 623373#L25 assume !(~n <= 0); 622548#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623634#factFINAL assume true; 623630#factEXIT >#68#return; 623113#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620859#$Ultimate##0 ~n := #in~n; 623275#L25 assume !(~n <= 0); 622592#L26 call #t~ret0 := fact(~n - 1);< 623218#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623473#factFINAL assume true; 623474#factEXIT >#70#return; 623418#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623431#$Ultimate##0 ~n := #in~n; 623430#L25 assume !(~n <= 0); 622585#L26 call #t~ret0 := fact(~n - 1);< 622603#$Ultimate##0 ~n := #in~n; 623413#L25 assume !(~n <= 0); 623174#L26 call #t~ret0 := fact(~n - 1);< 623363#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624420#factFINAL assume true; 624386#factEXIT >#72#return; 623966#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624492#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624491#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624489#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624479#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 623336#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623475#$Ultimate##0 ~n := #in~n; 623373#L25 assume !(~n <= 0); 622548#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623227#factFINAL assume true; 623220#factEXIT >#66#return; 623222#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623703#factFINAL assume true; 623691#factEXIT >#68#return; 622913#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 623133#$Ultimate##0 ~n := #in~n; 623141#L25 assume !(~n <= 0); 622537#L26 call #t~ret0 := fact(~n - 1);< 622702#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623227#factFINAL assume true; 623220#factEXIT >#66#return; 622715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622674#factFINAL assume true; 622614#factEXIT >#66#return; 622615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623975#factFINAL assume true; 623952#factEXIT >#70#return; 622722#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623138#$Ultimate##0 ~n := #in~n; 624263#L25 assume !(~n <= 0); 622695#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623551#factFINAL assume true; 623531#factEXIT >#72#return; 622818#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624432#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624430#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624429#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624379#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 623345#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 623475#$Ultimate##0 ~n := #in~n; 623373#L25 assume !(~n <= 0); 622548#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623188#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623634#factFINAL assume true; 623630#factEXIT >#68#return; 622952#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 620859#$Ultimate##0 ~n := #in~n; 623275#L25 assume !(~n <= 0); 622592#L26 call #t~ret0 := fact(~n - 1);< 623218#$Ultimate##0 ~n := #in~n; 623550#L25 assume !(~n <= 0); 622590#L26 call #t~ret0 := fact(~n - 1);< 623260#$Ultimate##0 ~n := #in~n; 623365#L25 assume !(~n <= 0); 623173#L26 call #t~ret0 := fact(~n - 1);< 623364#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623591#factFINAL assume true; 623505#factEXIT >#70#return; 620666#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 623488#$Ultimate##0 ~n := #in~n; 623491#L25 assume ~n <= 0;#res := 1; 623137#factFINAL assume true; 622789#factEXIT >#72#return; 622835#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624377#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 624375#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624373#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624266#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622284#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 622533#$Ultimate##0 ~n := #in~n; 623370#L25 assume !(~n <= 0); 622559#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#74#return; 622479#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622712#$Ultimate##0 ~n := #in~n; 623372#L25 assume !(~n <= 0); 622589#L26 call #t~ret0 := fact(~n - 1);< 623259#$Ultimate##0 ~n := #in~n; 623306#L25 assume !(~n <= 0); 622580#L26 call #t~ret0 := fact(~n - 1);< 622603#$Ultimate##0 ~n := #in~n; 623413#L25 assume !(~n <= 0); 623174#L26 call #t~ret0 := fact(~n - 1);< 623363#$Ultimate##0 ~n := #in~n; 623305#L25 assume !(~n <= 0); 620851#L26 call #t~ret0 := fact(~n - 1);< 623244#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623183#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622710#factFINAL assume true; 622679#factEXIT >#76#return; 622349#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622669#$Ultimate##0 ~n := #in~n; 624260#L25 assume !(~n <= 0); 622696#L26 call #t~ret0 := fact(~n - 1);< 622701#$Ultimate##0 ~n := #in~n; 622770#L25 assume ~n <= 0;#res := 1; 622716#factFINAL assume true; 622694#factEXIT >#66#return; 622693#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622692#factFINAL assume true; 622632#factEXIT >#78#return; 622650#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624326#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624310#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624307#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624306#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622308#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623227#factFINAL assume true; 623220#factEXIT >#66#return; 623224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623547#factFINAL assume true; 622077#factEXIT >#74#return; 622333#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622413#$Ultimate##0 ~n := #in~n; 623589#L25 assume !(~n <= 0); 622556#L26 call #t~ret0 := fact(~n - 1);< 622602#$Ultimate##0 ~n := #in~n; 623374#L25 assume !(~n <= 0); 622545#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#76#return; 622513#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 620877#$Ultimate##0 ~n := #in~n; 623490#L25 assume !(~n <= 0); 620852#L26 call #t~ret0 := fact(~n - 1);< 623179#$Ultimate##0 ~n := #in~n; 620848#L25 assume !(~n <= 0); 620854#L26 call #t~ret0 := fact(~n - 1);< 623245#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623171#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623160#factFINAL assume true; 623146#factEXIT >#78#return; 623147#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624335#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624330#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624327#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624321#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622324#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623227#factFINAL assume true; 623220#factEXIT >#66#return; 622715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622674#factFINAL assume true; 622614#factEXIT >#66#return; 622616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622675#factFINAL assume true; 622619#factEXIT >#74#return; 622089#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622413#$Ultimate##0 ~n := #in~n; 623589#L25 assume !(~n <= 0); 622556#L26 call #t~ret0 := fact(~n - 1);< 622602#$Ultimate##0 ~n := #in~n; 623374#L25 assume !(~n <= 0); 622545#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#76#return; 622084#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622352#$Ultimate##0 ~n := #in~n; 622704#L25 assume !(~n <= 0); 622549#L26 call #t~ret0 := fact(~n - 1);< 622702#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#78#return; 622510#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624320#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624319#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624317#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624316#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622119#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 620624#$Ultimate##0 ~n := #in~n; 623281#L25 assume !(~n <= 0); 622547#L26 call #t~ret0 := fact(~n - 1);< 623191#$Ultimate##0 ~n := #in~n; 624275#L25 assume !(~n <= 0); 622536#L26 call #t~ret0 := fact(~n - 1);< 623257#$Ultimate##0 ~n := #in~n; 623375#L25 assume !(~n <= 0); 622542#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623248#factFINAL assume true; 623184#factEXIT >#66#return; 623187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623227#factFINAL assume true; 623220#factEXIT >#66#return; 622715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622674#factFINAL assume true; 622614#factEXIT >#66#return; 622616#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622675#factFINAL assume true; 622619#factEXIT >#74#return; 622135#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 622413#$Ultimate##0 ~n := #in~n; 623589#L25 assume !(~n <= 0); 622556#L26 call #t~ret0 := fact(~n - 1);< 622602#$Ultimate##0 ~n := #in~n; 623374#L25 assume !(~n <= 0); 622545#L26 call #t~ret0 := fact(~n - 1);< 623308#$Ultimate##0 ~n := #in~n; 623307#L25 assume !(~n <= 0); 622544#L26 call #t~ret0 := fact(~n - 1);< 623178#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#76#return; 622139#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 622352#$Ultimate##0 ~n := #in~n; 622704#L25 assume !(~n <= 0); 622549#L26 call #t~ret0 := fact(~n - 1);< 622702#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623276#L25 assume !(~n <= 0); 622541#L26 call #t~ret0 := fact(~n - 1);< 623246#$Ultimate##0 ~n := #in~n; 623277#L25 assume ~n <= 0;#res := 1; 623274#factFINAL assume true; 623243#factEXIT >#66#return; 623242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623194#factFINAL assume true; 623172#factEXIT >#66#return; 623176#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 623486#factFINAL assume true; 623480#factEXIT >#66#return; 623482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 624149#factFINAL assume true; 622579#factEXIT >#66#return; 622571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 622531#factFINAL assume true; 622425#factEXIT >#78#return; 622339#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 624315#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 624314#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 624313#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 624312#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 622011#L30-5 [2023-02-17 09:43:12,612 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:12,612 INFO L85 PathProgramCache]: Analyzing trace with hash 355668639, now seen corresponding path program 45 times [2023-02-17 09:43:12,612 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:12,613 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [293685639] [2023-02-17 09:43:12,613 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:12,613 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:12,646 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:12,646 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1407858872] [2023-02-17 09:43:12,646 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:43:12,647 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:12,647 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:12,649 INFO L229 MonitoredProcess]: Starting monitored process 239 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:12,649 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (239)] Waiting until timeout for monitored process [2023-02-17 09:43:13,588 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 12 check-sat command(s) [2023-02-17 09:43:13,588 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:13,593 INFO L263 TraceCheckSpWp]: Trace formula consists of 802 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:43:13,602 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:13,676 INFO L134 CoverageAnalysis]: Checked inductivity of 215800 backedges. 95514 proven. 679 refuted. 0 times theorem prover too weak. 119607 trivial. 0 not checked. [2023-02-17 09:43:13,676 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:13,814 INFO L134 CoverageAnalysis]: Checked inductivity of 215800 backedges. 5024 proven. 2524 refuted. 0 times theorem prover too weak. 208252 trivial. 0 not checked. [2023-02-17 09:43:13,814 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:13,814 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [293685639] [2023-02-17 09:43:13,815 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:13,815 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1407858872] [2023-02-17 09:43:13,815 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1407858872] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:13,815 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:13,815 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 16] total 19 [2023-02-17 09:43:13,815 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [313473429] [2023-02-17 09:43:13,815 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:13,816 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:13,816 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:13,816 INFO L85 PathProgramCache]: Analyzing trace with hash 916203404, now seen corresponding path program 39 times [2023-02-17 09:43:13,816 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:13,816 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1210375686] [2023-02-17 09:43:13,816 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:13,816 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:13,838 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:13,838 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1167095604] [2023-02-17 09:43:13,838 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:43:13,838 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:13,839 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:13,843 INFO L229 MonitoredProcess]: Starting monitored process 240 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:13,844 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (240)] Waiting until timeout for monitored process [2023-02-17 09:43:14,673 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 17 check-sat command(s) [2023-02-17 09:43:14,673 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:14,676 INFO L263 TraceCheckSpWp]: Trace formula consists of 392 conjuncts, 35 conjunts are in the unsatisfiable core [2023-02-17 09:43:14,681 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:14,773 INFO L134 CoverageAnalysis]: Checked inductivity of 60065 backedges. 9690 proven. 479 refuted. 0 times theorem prover too weak. 49896 trivial. 0 not checked. [2023-02-17 09:43:14,773 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:15,123 INFO L134 CoverageAnalysis]: Checked inductivity of 60065 backedges. 9690 proven. 564 refuted. 0 times theorem prover too weak. 49811 trivial. 0 not checked. [2023-02-17 09:43:15,123 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:15,123 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1210375686] [2023-02-17 09:43:15,123 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:15,123 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1167095604] [2023-02-17 09:43:15,124 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1167095604] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:15,124 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:15,124 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 28] total 31 [2023-02-17 09:43:15,124 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [371886581] [2023-02-17 09:43:15,124 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:15,124 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:15,124 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:15,125 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-17 09:43:15,125 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=153, Invalid=777, Unknown=0, NotChecked=0, Total=930 [2023-02-17 09:43:15,125 INFO L87 Difference]: Start difference. First operand 3956 states and 8972 transitions. cyclomatic complexity: 5059 Second operand has 31 states, 28 states have (on average 2.642857142857143) internal successors, (74), 28 states have internal predecessors, (74), 17 states have call successors, (23), 1 states have call predecessors, (23), 13 states have return successors, (33), 16 states have call predecessors, (33), 17 states have call successors, (33) [2023-02-17 09:43:16,035 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:16,035 INFO L93 Difference]: Finished difference Result 4739 states and 10181 transitions. [2023-02-17 09:43:16,035 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4739 states and 10181 transitions. [2023-02-17 09:43:16,066 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 1053 [2023-02-17 09:43:16,104 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4739 states to 4697 states and 9912 transitions. [2023-02-17 09:43:16,104 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 798 [2023-02-17 09:43:16,105 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 798 [2023-02-17 09:43:16,105 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4697 states and 9912 transitions. [2023-02-17 09:43:16,105 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:16,105 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4697 states and 9912 transitions. [2023-02-17 09:43:16,106 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4697 states and 9912 transitions. [2023-02-17 09:43:16,172 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4697 to 3978. [2023-02-17 09:43:16,175 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3978 states, 2185 states have (on average 1.0448512585812357) internal successors, (2283), 2169 states have internal predecessors, (2283), 1546 states have call successors, (1583), 323 states have call predecessors, (1583), 247 states have return successors, (4960), 1485 states have call predecessors, (4960), 1546 states have call successors, (4960) [2023-02-17 09:43:16,191 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3978 states to 3978 states and 8826 transitions. [2023-02-17 09:43:16,191 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3978 states and 8826 transitions. [2023-02-17 09:43:16,191 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2023-02-17 09:43:16,192 INFO L428 stractBuchiCegarLoop]: Abstraction has 3978 states and 8826 transitions. [2023-02-17 09:43:16,192 INFO L335 stractBuchiCegarLoop]: ======== Iteration 69 ============ [2023-02-17 09:43:16,192 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3978 states and 8826 transitions. [2023-02-17 09:43:16,205 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 785 [2023-02-17 09:43:16,205 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:16,205 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:16,211 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [292, 292, 205, 205, 205, 205, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:16,211 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [159, 159, 129, 129, 129, 129, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:16,212 INFO L748 eck$LassoCheckResult]: Stem: 646073#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 646003#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 646004#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 646029#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 646074#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 646723#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646718#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646715#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646716#$Ultimate##0 ~n := #in~n; 646748#L25 assume ~n <= 0;#res := 1; 646747#factFINAL assume true; 646714#factEXIT >#68#return; 646672#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646673#$Ultimate##0 ~n := #in~n; 646675#L25 assume ~n <= 0;#res := 1; 646674#factFINAL assume true; 646671#factEXIT >#70#return; 646668#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646669#$Ultimate##0 ~n := #in~n; 646677#L25 assume ~n <= 0;#res := 1; 646676#factFINAL assume true; 646667#factEXIT >#72#return; 646665#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 646664#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 646663#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 646659#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646657#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646651#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646656#$Ultimate##0 ~n := #in~n; 646654#L25 assume !(~n <= 0); 646647#L26 call #t~ret0 := fact(~n - 1);< 646649#$Ultimate##0 ~n := #in~n; 646678#L25 assume ~n <= 0;#res := 1; 646650#factFINAL assume true; 646645#factEXIT >#66#return; 646648#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646711#factFINAL assume true; 646710#factEXIT >#74#return; 646708#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646709#$Ultimate##0 ~n := #in~n; 646770#L25 assume ~n <= 0;#res := 1; 646745#factFINAL assume true; 646707#factEXIT >#76#return; 646640#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646641#$Ultimate##0 ~n := #in~n; 646712#L25 assume !(~n <= 0); 646646#L26 call #t~ret0 := fact(~n - 1);< 646649#$Ultimate##0 ~n := #in~n; 646678#L25 assume ~n <= 0;#res := 1; 646650#factFINAL assume true; 646645#factEXIT >#66#return; 646644#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646643#factFINAL assume true; 646639#factEXIT >#78#return; 646637#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 646635#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 646634#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 646632#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646626#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646602#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646604#$Ultimate##0 ~n := #in~n; 646623#L25 assume !(~n <= 0); 646620#L26 call #t~ret0 := fact(~n - 1);< 646622#$Ultimate##0 ~n := #in~n; 646633#L25 assume !(~n <= 0); 646621#L26 call #t~ret0 := fact(~n - 1);< 646631#$Ultimate##0 ~n := #in~n; 646670#L25 assume ~n <= 0;#res := 1; 646666#factFINAL assume true; 646660#factEXIT >#66#return; 646658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646652#factFINAL assume true; 646627#factEXIT >#66#return; 646630#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646691#factFINAL assume true; 646689#factEXIT >#74#return; 646617#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646618#$Ultimate##0 ~n := #in~n; 646680#L25 assume ~n <= 0;#res := 1; 646679#factFINAL assume true; 646616#factEXIT >#76#return; 646613#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646614#$Ultimate##0 ~n := #in~n; 646655#L25 assume !(~n <= 0); 646628#L26 call #t~ret0 := fact(~n - 1);< 646653#$Ultimate##0 ~n := #in~n; 646713#L25 assume !(~n <= 0); 646661#L26 call #t~ret0 := fact(~n - 1);< 646662#$Ultimate##0 ~n := #in~n; 646670#L25 assume ~n <= 0;#res := 1; 646666#factFINAL assume true; 646660#factEXIT >#66#return; 646658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646652#factFINAL assume true; 646627#factEXIT >#66#return; 646629#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646681#factFINAL assume true; 646612#factEXIT >#78#return; 646610#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 646609#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 646608#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 646607#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646605#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646603#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646604#$Ultimate##0 ~n := #in~n; 646623#L25 assume !(~n <= 0); 646620#L26 call #t~ret0 := fact(~n - 1);< 646622#$Ultimate##0 ~n := #in~n; 646633#L25 assume !(~n <= 0); 646621#L26 call #t~ret0 := fact(~n - 1);< 646631#$Ultimate##0 ~n := #in~n; 646633#L25 assume !(~n <= 0); 646621#L26 call #t~ret0 := fact(~n - 1);< 646631#$Ultimate##0 ~n := #in~n; 646670#L25 assume ~n <= 0;#res := 1; 646666#factFINAL assume true; 646660#factEXIT >#66#return; 646658#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646652#factFINAL assume true; 646627#factEXIT >#66#return; 646625#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646624#factFINAL assume true; 646619#factEXIT >#66#return; 646615#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646611#factFINAL assume true; 646601#factEXIT >#74#return; 646598#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646599#$Ultimate##0 ~n := #in~n; 646686#L25 assume ~n <= 0;#res := 1; 646683#factFINAL assume true; 646597#factEXIT >#76#return; 646591#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646595#$Ultimate##0 ~n := #in~n; 646594#L25 assume !(~n <= 0); 646583#L26 call #t~ret0 := fact(~n - 1);< 646592#$Ultimate##0 ~n := #in~n; 646744#L25 assume !(~n <= 0); 646585#L26 call #t~ret0 := fact(~n - 1);< 646587#$Ultimate##0 ~n := #in~n; 646703#L25 assume !(~n <= 0); 646582#L26 call #t~ret0 := fact(~n - 1);< 646701#$Ultimate##0 ~n := #in~n; 646752#L25 assume ~n <= 0;#res := 1; 646704#factFINAL assume true; 646700#factEXIT >#66#return; 646699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646698#factFINAL assume true; 646694#factEXIT >#66#return; 646690#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646688#factFINAL assume true; 646685#factEXIT >#66#return; 646586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646790#factFINAL assume true; 646789#factEXIT >#78#return; 646788#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 646787#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 646786#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 646773#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646570#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646567#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646568#$Ultimate##0 ~n := #in~n; 646684#L25 assume !(~n <= 0); 646584#L26 call #t~ret0 := fact(~n - 1);< 646587#$Ultimate##0 ~n := #in~n; 646703#L25 assume !(~n <= 0); 646582#L26 call #t~ret0 := fact(~n - 1);< 646701#$Ultimate##0 ~n := #in~n; 646703#L25 assume !(~n <= 0); 646582#L26 call #t~ret0 := fact(~n - 1);< 646701#$Ultimate##0 ~n := #in~n; 646703#L25 assume !(~n <= 0); 646582#L26 call #t~ret0 := fact(~n - 1);< 646701#$Ultimate##0 ~n := #in~n; 646752#L25 assume ~n <= 0;#res := 1; 646704#factFINAL assume true; 646700#factEXIT >#66#return; 646699#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646698#factFINAL assume true; 646694#factEXIT >#66#return; 646690#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646688#factFINAL assume true; 646685#factEXIT >#66#return; 646682#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646590#factFINAL assume true; 646581#factEXIT >#66#return; 646574#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646573#factFINAL assume true; 646566#factEXIT >#74#return; 646559#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646560#$Ultimate##0 ~n := #in~n; 646565#L25 assume ~n <= 0;#res := 1; 646564#factFINAL assume true; 646558#factEXIT >#76#return; 646548#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646553#$Ultimate##0 ~n := #in~n; 646551#L25 assume !(~n <= 0); 646525#L26 call #t~ret0 := fact(~n - 1);< 646549#$Ultimate##0 ~n := #in~n; 646593#L25 assume !(~n <= 0); 646526#L26 call #t~ret0 := fact(~n - 1);< 646562#$Ultimate##0 ~n := #in~n; 646642#L25 assume !(~n <= 0); 646530#L26 call #t~ret0 := fact(~n - 1);< 646580#$Ultimate##0 ~n := #in~n; 646642#L25 assume !(~n <= 0); 646530#L26 call #t~ret0 := fact(~n - 1);< 646580#$Ultimate##0 ~n := #in~n; 646638#L25 assume ~n <= 0;#res := 1; 646636#factFINAL assume true; 646579#factEXIT >#66#return; 646578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646577#factFINAL assume true; 646572#factEXIT >#66#return; 646571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646569#factFINAL assume true; 646561#factEXIT >#66#return; 646556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646547#factFINAL assume true; 646544#factEXIT >#66#return; 646545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646769#factFINAL assume true; 646768#factEXIT >#78#return; 646766#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 646765#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 646764#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 646743#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646742#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646257#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646258#$Ultimate##0 ~n := #in~n; 646271#L25 assume !(~n <= 0); 646268#L26 call #t~ret0 := fact(~n - 1);< 646269#$Ultimate##0 ~n := #in~n; 646295#L25 assume !(~n <= 0); 646290#L26 call #t~ret0 := fact(~n - 1);< 646291#$Ultimate##0 ~n := #in~n; 646401#L25 assume !(~n <= 0); 646398#L26 call #t~ret0 := fact(~n - 1);< 646399#$Ultimate##0 ~n := #in~n; 646417#L25 assume !(~n <= 0); 646397#L26 call #t~ret0 := fact(~n - 1);< 646414#$Ultimate##0 ~n := #in~n; 646417#L25 assume !(~n <= 0); 646397#L26 call #t~ret0 := fact(~n - 1);< 646414#$Ultimate##0 ~n := #in~n; 646424#L25 assume ~n <= 0;#res := 1; 646423#factFINAL assume true; 646421#factEXIT >#66#return; 646419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646416#factFINAL assume true; 646413#factEXIT >#66#return; 646411#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646409#factFINAL assume true; 646396#factEXIT >#66#return; 646307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646301#factFINAL assume true; 646289#factEXIT >#66#return; 646283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646282#factFINAL assume true; 646267#factEXIT >#66#return; 646266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646265#factFINAL assume true; 646256#factEXIT >#74#return; 646254#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646255#$Ultimate##0 ~n := #in~n; 646262#L25 assume ~n <= 0;#res := 1; 646259#factFINAL assume true; 646253#factEXIT >#76#return; 646243#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646252#$Ultimate##0 ~n := #in~n; 646245#L25 assume !(~n <= 0); 646212#L26 call #t~ret0 := fact(~n - 1);< 646240#$Ultimate##0 ~n := #in~n; 646325#L25 assume !(~n <= 0); 646207#L26 call #t~ret0 := fact(~n - 1);< 646251#$Ultimate##0 ~n := #in~n; 646395#L25 assume !(~n <= 0); 646208#L26 call #t~ret0 := fact(~n - 1);< 646281#$Ultimate##0 ~n := #in~n; 646363#L25 assume !(~n <= 0); 646210#L26 call #t~ret0 := fact(~n - 1);< 646233#$Ultimate##0 ~n := #in~n; 646321#L25 assume !(~n <= 0); 646201#L26 call #t~ret0 := fact(~n - 1);< 646319#$Ultimate##0 ~n := #in~n; 646330#L25 assume ~n <= 0;#res := 1; 646328#factFINAL assume true; 646318#factEXIT >#66#return; 646317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646316#factFINAL assume true; 646306#factEXIT >#66#return; 646300#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646288#factFINAL assume true; 646280#factEXIT >#66#return; 646279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646276#factFINAL assume true; 646250#factEXIT >#66#return; 646244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646242#factFINAL assume true; 646239#factEXIT >#66#return; 646216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646432#factFINAL assume true; 646361#factEXIT >#78#return; 646182#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 646181#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 646180#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 646179#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 646178#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 646177#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 646176#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646175#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646123#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646171#$Ultimate##0 ~n := #in~n; 647807#L25 assume !(~n <= 0); 647008#L26 call #t~ret0 := fact(~n - 1);< 647804#$Ultimate##0 ~n := #in~n; 648674#L25 assume ~n <= 0;#res := 1; 648673#factFINAL assume true; 648671#factEXIT >#66#return; 648669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648666#factFINAL assume true; 648663#factEXIT >#68#return; 646151#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646174#$Ultimate##0 ~n := #in~n; 646173#L25 assume ~n <= 0;#res := 1; 646172#factFINAL assume true; 646117#factEXIT >#70#return; 646170#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648660#$Ultimate##0 ~n := #in~n; 648668#L25 assume !(~n <= 0); 646010#L26 call #t~ret0 := fact(~n - 1);< 648665#$Ultimate##0 ~n := #in~n; 648670#L25 assume ~n <= 0;#res := 1; 648667#factFINAL assume true; 648664#factEXIT >#66#return; 648662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648661#factFINAL assume true; 648659#factEXIT >#72#return; 648658#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 648655#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 648654#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 648653#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 648651#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 648508#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648616#$Ultimate##0 ~n := #in~n; 648638#L25 assume !(~n <= 0); 647699#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648652#factFINAL assume true; 648642#factEXIT >#68#return; 648643#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648650#$Ultimate##0 ~n := #in~n; 648656#L25 assume !(~n <= 0); 648237#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648652#factFINAL assume true; 648642#factEXIT >#70#return; 648379#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648493#$Ultimate##0 ~n := #in~n; 648619#L25 assume ~n <= 0;#res := 1; 647806#factFINAL assume true; 648356#factEXIT >#72#return; 648438#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 648635#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 648632#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 648630#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 648626#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 645960#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 645961#$Ultimate##0 ~n := #in~n; 648490#L25 assume !(~n <= 0); 647702#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#74#return; 647998#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648024#$Ultimate##0 ~n := #in~n; 648725#L25 assume !(~n <= 0); 648238#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#76#return; 647994#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648024#$Ultimate##0 ~n := #in~n; 648725#L25 assume !(~n <= 0); 648238#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#78#return; 648020#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 648636#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 648633#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 648631#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 648627#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647636#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647680#$Ultimate##0 ~n := #in~n; 648730#L25 assume !(~n <= 0); 647697#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648025#factFINAL assume true; 647895#factEXIT >#74#return; 647900#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648024#$Ultimate##0 ~n := #in~n; 648725#L25 assume !(~n <= 0); 648238#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#76#return; 647987#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648491#$Ultimate##0 ~n := #in~n; 648709#L25 assume !(~n <= 0); 646020#L26 call #t~ret0 := fact(~n - 1);< 648224#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#78#return; 648043#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 648489#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 648488#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 648486#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 648484#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647645#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647680#$Ultimate##0 ~n := #in~n; 648730#L25 assume !(~n <= 0); 647697#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#74#return; 647671#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648024#$Ultimate##0 ~n := #in~n; 648725#L25 assume !(~n <= 0); 648238#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#76#return; 647646#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 647910#$Ultimate##0 ~n := #in~n; 648733#L25 assume !(~n <= 0); 647733#L26 call #t~ret0 := fact(~n - 1);< 647756#$Ultimate##0 ~n := #in~n; 649098#L25 assume !(~n <= 0); 647751#L26 call #t~ret0 := fact(~n - 1);< 647919#$Ultimate##0 ~n := #in~n; 649166#L25 assume !(~n <= 0); 646016#L26 call #t~ret0 := fact(~n - 1);< 649093#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648025#factFINAL assume true; 647895#factEXIT >#78#return; 647896#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649156#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649119#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649117#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649116#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647375#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648062#factFINAL assume true; 647214#factEXIT >#74#return; 647548#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648024#$Ultimate##0 ~n := #in~n; 648725#L25 assume !(~n <= 0); 648238#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#76#return; 647647#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 647910#$Ultimate##0 ~n := #in~n; 648733#L25 assume !(~n <= 0); 647733#L26 call #t~ret0 := fact(~n - 1);< 647756#$Ultimate##0 ~n := #in~n; 649098#L25 assume !(~n <= 0); 647751#L26 call #t~ret0 := fact(~n - 1);< 647919#$Ultimate##0 ~n := #in~n; 649166#L25 assume !(~n <= 0); 646016#L26 call #t~ret0 := fact(~n - 1);< 649093#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#78#return; 647558#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 647904#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 647903#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 647888#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 647590#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647146#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 645959#$Ultimate##0 ~n := #in~n; 647606#L25 assume !(~n <= 0); 647189#L26 call #t~ret0 := fact(~n - 1);< 647603#$Ultimate##0 ~n := #in~n; 647602#L25 assume !(~n <= 0); 647180#L26 call #t~ret0 := fact(~n - 1);< 647600#$Ultimate##0 ~n := #in~n; 647596#L25 assume !(~n <= 0); 647165#L26 call #t~ret0 := fact(~n - 1);< 647181#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647199#factFINAL assume true; 647195#factEXIT >#66#return; 647193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647179#factFINAL assume true; 647164#factEXIT >#66#return; 647175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648231#factFINAL assume true; 648229#factEXIT >#66#return; 648228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648227#factFINAL assume true; 648055#factEXIT >#66#return; 648056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647984#factFINAL assume true; 647889#factEXIT >#74#return; 647588#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647589#$Ultimate##0 ~n := #in~n; 647601#L25 assume !(~n <= 0); 647598#L26 call #t~ret0 := fact(~n - 1);< 647599#$Ultimate##0 ~n := #in~n; 647612#L25 assume ~n <= 0;#res := 1; 647605#factFINAL assume true; 647597#factEXIT >#66#return; 647595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647591#factFINAL assume true; 647586#factEXIT >#76#return; 647066#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646076#$Ultimate##0 ~n := #in~n; 648033#L25 assume !(~n <= 0); 647172#L26 call #t~ret0 := fact(~n - 1);< 647191#$Ultimate##0 ~n := #in~n; 647611#L25 assume !(~n <= 0); 647174#L26 call #t~ret0 := fact(~n - 1);< 647181#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647199#factFINAL assume true; 647195#factEXIT >#66#return; 647193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647179#factFINAL assume true; 647164#factEXIT >#66#return; 647175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648231#factFINAL assume true; 648229#factEXIT >#66#return; 648228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648227#factFINAL assume true; 648055#factEXIT >#66#return; 648056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647984#factFINAL assume true; 647889#factEXIT >#78#return; 647131#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 647894#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 647892#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 647890#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 647614#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 647609#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 647608#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 647211#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 645998#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 645999#$Ultimate##0 ~n := #in~n; 647203#L25 assume !(~n <= 0); 647012#L26 call #t~ret0 := fact(~n - 1);< 647201#$Ultimate##0 ~n := #in~n; 647564#L25 assume !(~n <= 0); 647011#L26 call #t~ret0 := fact(~n - 1);< 647207#$Ultimate##0 ~n := #in~n; 647563#L25 assume ~n <= 0;#res := 1; 647562#factFINAL assume true; 647206#factEXIT >#66#return; 647204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647200#factFINAL assume true; 647055#factEXIT >#66#return; 647056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649031#factFINAL assume true; 649010#factEXIT >#68#return; 646132#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646174#$Ultimate##0 ~n := #in~n; 646173#L25 assume ~n <= 0;#res := 1; 646172#factFINAL assume true; 646117#factEXIT >#70#return; 646088#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646089#$Ultimate##0 ~n := #in~n; 649040#L25 assume !(~n <= 0); 646012#L26 call #t~ret0 := fact(~n - 1);< 649036#$Ultimate##0 ~n := #in~n; 648672#L25 assume !(~n <= 0); 646009#L26 call #t~ret0 := fact(~n - 1);< 646014#$Ultimate##0 ~n := #in~n; 649048#L25 assume ~n <= 0;#res := 1; 649045#factFINAL assume true; 649042#factEXIT >#66#return; 649041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649037#factFINAL assume true; 649035#factEXIT >#66#return; 649034#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649030#factFINAL assume true; 649003#factEXIT >#72#return; 649007#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649250#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649246#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649247#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649167#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647937#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648629#$Ultimate##0 ~n := #in~n; 649120#L25 assume !(~n <= 0); 647691#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648704#factFINAL assume true; 648702#factEXIT >#68#return; 648089#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646065#$Ultimate##0 ~n := #in~n; 648699#L25 assume !(~n <= 0); 647727#L26 call #t~ret0 := fact(~n - 1);< 648220#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648652#factFINAL assume true; 648642#factEXIT >#70#return; 648274#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645997#$Ultimate##0 ~n := #in~n; 648820#L25 assume !(~n <= 0); 648236#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649155#factFINAL assume true; 649131#factEXIT >#72#return; 649132#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649248#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649249#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649244#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647929#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648629#$Ultimate##0 ~n := #in~n; 649120#L25 assume !(~n <= 0); 647691#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648704#factFINAL assume true; 648702#factEXIT >#68#return; 648090#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646065#$Ultimate##0 ~n := #in~n; 648699#L25 assume !(~n <= 0); 647727#L26 call #t~ret0 := fact(~n - 1);< 648220#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648704#factFINAL assume true; 648702#factEXIT >#70#return; 648281#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645997#$Ultimate##0 ~n := #in~n; 648820#L25 assume ~n <= 0;#res := 1; 647806#factFINAL assume true; 648356#factEXIT >#72#return; 648402#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649631#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649630#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649629#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649628#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647628#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647680#$Ultimate##0 ~n := #in~n; 648730#L25 assume !(~n <= 0); 647697#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648025#factFINAL assume true; 647895#factEXIT >#74#return; 647251#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646071#$Ultimate##0 ~n := #in~n; 648469#L25 assume !(~n <= 0); 647735#L26 call #t~ret0 := fact(~n - 1);< 648073#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#76#return; 647995#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648491#$Ultimate##0 ~n := #in~n; 648709#L25 assume !(~n <= 0); 646020#L26 call #t~ret0 := fact(~n - 1);< 648224#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#78#return; 648021#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649627#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649626#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649625#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649624#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647629#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647680#$Ultimate##0 ~n := #in~n; 648730#L25 assume !(~n <= 0); 647697#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#74#return; 647249#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646071#$Ultimate##0 ~n := #in~n; 648469#L25 assume !(~n <= 0); 647735#L26 call #t~ret0 := fact(~n - 1);< 648073#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#76#return; 647993#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648491#$Ultimate##0 ~n := #in~n; 648709#L25 assume !(~n <= 0); 646020#L26 call #t~ret0 := fact(~n - 1);< 648224#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#78#return; 648046#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649623#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649622#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649621#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649620#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647263#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648062#factFINAL assume true; 647214#factEXIT >#74#return; 647264#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646071#$Ultimate##0 ~n := #in~n; 648469#L25 assume !(~n <= 0); 647735#L26 call #t~ret0 := fact(~n - 1);< 648073#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#76#return; 647632#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 647910#$Ultimate##0 ~n := #in~n; 648733#L25 assume !(~n <= 0); 647733#L26 call #t~ret0 := fact(~n - 1);< 647756#$Ultimate##0 ~n := #in~n; 649098#L25 assume !(~n <= 0); 647751#L26 call #t~ret0 := fact(~n - 1);< 647919#$Ultimate##0 ~n := #in~n; 649166#L25 assume !(~n <= 0); 646016#L26 call #t~ret0 := fact(~n - 1);< 649093#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#78#return; 647661#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649619#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649618#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649617#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649616#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647267#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648062#factFINAL assume true; 647214#factEXIT >#74#return; 647276#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646071#$Ultimate##0 ~n := #in~n; 648469#L25 assume !(~n <= 0); 647735#L26 call #t~ret0 := fact(~n - 1);< 648073#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#76#return; 647634#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 647910#$Ultimate##0 ~n := #in~n; 648733#L25 assume !(~n <= 0); 647733#L26 call #t~ret0 := fact(~n - 1);< 647756#$Ultimate##0 ~n := #in~n; 649098#L25 assume !(~n <= 0); 647751#L26 call #t~ret0 := fact(~n - 1);< 647919#$Ultimate##0 ~n := #in~n; 649166#L25 assume !(~n <= 0); 646016#L26 call #t~ret0 := fact(~n - 1);< 649093#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#78#return; 647559#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649689#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649363#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649361#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649359#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647143#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 645959#$Ultimate##0 ~n := #in~n; 647606#L25 assume !(~n <= 0); 647189#L26 call #t~ret0 := fact(~n - 1);< 647603#$Ultimate##0 ~n := #in~n; 647602#L25 assume !(~n <= 0); 647180#L26 call #t~ret0 := fact(~n - 1);< 647600#$Ultimate##0 ~n := #in~n; 647596#L25 assume !(~n <= 0); 647165#L26 call #t~ret0 := fact(~n - 1);< 647181#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647199#factFINAL assume true; 647195#factEXIT >#66#return; 647193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647179#factFINAL assume true; 647164#factEXIT >#66#return; 647175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648231#factFINAL assume true; 648229#factEXIT >#66#return; 648228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648227#factFINAL assume true; 648055#factEXIT >#66#return; 648056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647984#factFINAL assume true; 647889#factEXIT >#74#return; 647096#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647604#$Ultimate##0 ~n := #in~n; 647594#L25 assume !(~n <= 0); 647171#L26 call #t~ret0 := fact(~n - 1);< 647213#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649358#factFINAL assume true; 649357#factEXIT >#76#return; 647107#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646076#$Ultimate##0 ~n := #in~n; 648033#L25 assume !(~n <= 0); 647172#L26 call #t~ret0 := fact(~n - 1);< 647191#$Ultimate##0 ~n := #in~n; 647611#L25 assume !(~n <= 0); 647174#L26 call #t~ret0 := fact(~n - 1);< 647181#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647199#factFINAL assume true; 647195#factEXIT >#66#return; 647193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647179#factFINAL assume true; 647164#factEXIT >#66#return; 647175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648231#factFINAL assume true; 648229#factEXIT >#66#return; 648228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648227#factFINAL assume true; 648055#factEXIT >#66#return; 648056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647984#factFINAL assume true; 647889#factEXIT >#78#return; 647136#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649348#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649335#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649334#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 649333#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 649331#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 649327#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649326#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646993#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 645999#$Ultimate##0 ~n := #in~n; 647203#L25 assume !(~n <= 0); 647012#L26 call #t~ret0 := fact(~n - 1);< 647201#$Ultimate##0 ~n := #in~n; 647564#L25 assume !(~n <= 0); 647011#L26 call #t~ret0 := fact(~n - 1);< 647207#$Ultimate##0 ~n := #in~n; 647563#L25 assume ~n <= 0;#res := 1; 647562#factFINAL assume true; 647206#factEXIT >#66#return; 647204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647200#factFINAL assume true; 647055#factEXIT >#66#return; 647056#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649031#factFINAL assume true; 649010#factEXIT >#68#return; 646124#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646174#$Ultimate##0 ~n := #in~n; 646173#L25 assume ~n <= 0;#res := 1; 646172#factFINAL assume true; 646117#factEXIT >#70#return; 646157#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648973#$Ultimate##0 ~n := #in~n; 648972#L25 assume !(~n <= 0); 648962#L26 call #t~ret0 := fact(~n - 1);< 648965#$Ultimate##0 ~n := #in~n; 648984#L25 assume !(~n <= 0); 648978#L26 call #t~ret0 := fact(~n - 1);< 648981#$Ultimate##0 ~n := #in~n; 648985#L25 assume ~n <= 0;#res := 1; 648983#factFINAL assume true; 648977#factEXIT >#66#return; 648975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648970#factFINAL assume true; 648959#factEXIT >#66#return; 648963#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649033#factFINAL assume true; 649023#factEXIT >#72#return; 649028#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649433#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649432#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649431#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649430#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 645963#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646000#$Ultimate##0 ~n := #in~n; 648855#L25 assume !(~n <= 0); 648813#L26 call #t~ret0 := fact(~n - 1);< 648860#$Ultimate##0 ~n := #in~n; 648876#L25 assume !(~n <= 0); 648814#L26 call #t~ret0 := fact(~n - 1);< 648869#$Ultimate##0 ~n := #in~n; 648874#L25 assume ~n <= 0;#res := 1; 648872#factFINAL assume true; 648868#factEXIT >#66#return; 648862#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648861#factFINAL assume true; 648858#factEXIT >#66#return; 648859#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649198#factFINAL assume true; 649192#factEXIT >#68#return; 648783#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646063#$Ultimate##0 ~n := #in~n; 648803#L25 assume ~n <= 0;#res := 1; 648800#factFINAL assume true; 648775#factEXIT >#70#return; 647979#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645995#$Ultimate##0 ~n := #in~n; 649122#L25 assume !(~n <= 0); 646018#L26 call #t~ret0 := fact(~n - 1);< 647921#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647918#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649197#factFINAL assume true; 649187#factEXIT >#72#return; 649189#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649429#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649428#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649426#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649424#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647925#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648629#$Ultimate##0 ~n := #in~n; 649120#L25 assume !(~n <= 0); 647691#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648704#factFINAL assume true; 648702#factEXIT >#68#return; 648200#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646065#$Ultimate##0 ~n := #in~n; 648699#L25 assume !(~n <= 0); 647727#L26 call #t~ret0 := fact(~n - 1);< 648220#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648704#factFINAL assume true; 648702#factEXIT >#70#return; 648268#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645997#$Ultimate##0 ~n := #in~n; 648820#L25 assume ~n <= 0;#res := 1; 647806#factFINAL assume true; 648356#factEXIT >#72#return; 648431#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649587#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649583#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649584#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649405#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647940#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648629#$Ultimate##0 ~n := #in~n; 649120#L25 assume !(~n <= 0); 647691#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649199#factFINAL assume true; 649195#factEXIT >#68#return; 648155#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646065#$Ultimate##0 ~n := #in~n; 648699#L25 assume !(~n <= 0); 647727#L26 call #t~ret0 := fact(~n - 1);< 648220#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 649051#L25 assume !(~n <= 0); 647747#L26 call #t~ret0 := fact(~n - 1);< 649091#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648705#factFINAL assume true; 648703#factEXIT >#70#return; 648295#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645997#$Ultimate##0 ~n := #in~n; 648820#L25 assume ~n <= 0;#res := 1; 647806#factFINAL assume true; 648356#factEXIT >#72#return; 648450#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649382#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649381#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649380#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649379#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647513#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647681#$Ultimate##0 ~n := #in~n; 647983#L25 assume !(~n <= 0); 647708#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#74#return; 647255#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648026#$Ultimate##0 ~n := #in~n; 648243#L25 assume !(~n <= 0); 647731#L26 call #t~ret0 := fact(~n - 1);< 648072#$Ultimate##0 ~n := #in~n; 649100#L25 assume !(~n <= 0); 647734#L26 call #t~ret0 := fact(~n - 1);< 647920#$Ultimate##0 ~n := #in~n; 649051#L25 assume !(~n <= 0); 647747#L26 call #t~ret0 := fact(~n - 1);< 649091#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648025#factFINAL assume true; 647895#factEXIT >#76#return; 647897#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648024#$Ultimate##0 ~n := #in~n; 648725#L25 assume !(~n <= 0); 648238#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#78#return; 648022#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649378#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649377#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649376#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649375#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647302#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648062#factFINAL assume true; 647214#factEXIT >#74#return; 647321#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648026#$Ultimate##0 ~n := #in~n; 648243#L25 assume !(~n <= 0); 647731#L26 call #t~ret0 := fact(~n - 1);< 648072#$Ultimate##0 ~n := #in~n; 649100#L25 assume !(~n <= 0); 647734#L26 call #t~ret0 := fact(~n - 1);< 647920#$Ultimate##0 ~n := #in~n; 649051#L25 assume !(~n <= 0); 647747#L26 call #t~ret0 := fact(~n - 1);< 649091#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648025#factFINAL assume true; 647895#factEXIT >#76#return; 646077#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 646078#$Ultimate##0 ~n := #in~n; 649099#L25 assume !(~n <= 0); 647718#L26 call #t~ret0 := fact(~n - 1);< 647924#$Ultimate##0 ~n := #in~n; 649051#L25 assume !(~n <= 0); 647747#L26 call #t~ret0 := fact(~n - 1);< 649091#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#78#return; 648048#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 648856#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 648850#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 648828#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 648827#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647362#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647911#factFINAL assume true; 647912#factEXIT >#74#return; 647401#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647681#$Ultimate##0 ~n := #in~n; 647983#L25 assume !(~n <= 0); 647708#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648025#factFINAL assume true; 647895#factEXIT >#76#return; 647427#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645961#$Ultimate##0 ~n := #in~n; 648490#L25 assume !(~n <= 0); 647702#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#78#return; 647673#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649755#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649732#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649731#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649533#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647450#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648064#factFINAL assume true; 648057#factEXIT >#66#return; 647711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647811#factFINAL assume true; 647682#factEXIT >#66#return; 647678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647624#factFINAL assume true; 647616#factEXIT >#74#return; 647484#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647681#$Ultimate##0 ~n := #in~n; 647983#L25 assume !(~n <= 0); 647708#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647911#factFINAL assume true; 647912#factEXIT >#76#return; 647474#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645961#$Ultimate##0 ~n := #in~n; 648490#L25 assume !(~n <= 0); 647702#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#78#return; 647535#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649532#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649531#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649530#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649529#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647147#L30-5 [2023-02-17 09:43:16,212 INFO L750 eck$LassoCheckResult]: Loop: 647147#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 645959#$Ultimate##0 ~n := #in~n; 647606#L25 assume !(~n <= 0); 647189#L26 call #t~ret0 := fact(~n - 1);< 647603#$Ultimate##0 ~n := #in~n; 647602#L25 assume !(~n <= 0); 647180#L26 call #t~ret0 := fact(~n - 1);< 647600#$Ultimate##0 ~n := #in~n; 647596#L25 assume !(~n <= 0); 647165#L26 call #t~ret0 := fact(~n - 1);< 647181#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647199#factFINAL assume true; 647195#factEXIT >#66#return; 647193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647179#factFINAL assume true; 647164#factEXIT >#66#return; 647175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648231#factFINAL assume true; 648229#factEXIT >#66#return; 648228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648227#factFINAL assume true; 648055#factEXIT >#66#return; 648053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648030#factFINAL assume true; 647905#factEXIT >#66#return; 647190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647615#factFINAL assume true; 647182#factEXIT >#66#return; 647177#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647161#factFINAL assume true; 647141#factEXIT >#74#return; 647069#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647139#$Ultimate##0 ~n := #in~n; 647210#L25 assume !(~n <= 0); 647169#L26 call #t~ret0 := fact(~n - 1);< 647176#$Ultimate##0 ~n := #in~n; 647565#L25 assume !(~n <= 0); 647173#L26 call #t~ret0 := fact(~n - 1);< 647197#$Ultimate##0 ~n := #in~n; 647611#L25 assume !(~n <= 0); 647174#L26 call #t~ret0 := fact(~n - 1);< 647181#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647199#factFINAL assume true; 647195#factEXIT >#66#return; 647193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647179#factFINAL assume true; 647164#factEXIT >#66#return; 647175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648231#factFINAL assume true; 648229#factEXIT >#66#return; 648228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648227#factFINAL assume true; 648055#factEXIT >#66#return; 648053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648030#factFINAL assume true; 647905#factEXIT >#66#return; 647906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648029#factFINAL assume true; 647902#factEXIT >#76#return; 647079#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 647137#$Ultimate##0 ~n := #in~n; 647613#L25 assume !(~n <= 0); 647167#L26 call #t~ret0 := fact(~n - 1);< 647607#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647573#L25 assume !(~n <= 0); 647166#L26 call #t~ret0 := fact(~n - 1);< 647569#$Ultimate##0 ~n := #in~n; 647577#L25 assume ~n <= 0;#res := 1; 647575#factFINAL assume true; 647568#factEXIT >#66#return; 647566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647212#factFINAL assume true; 647208#factEXIT >#66#return; 647205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647199#factFINAL assume true; 647195#factEXIT >#66#return; 647193#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647179#factFINAL assume true; 647164#factEXIT >#66#return; 647175#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648231#factFINAL assume true; 648229#factEXIT >#66#return; 648228#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648227#factFINAL assume true; 648055#factEXIT >#66#return; 648053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648030#factFINAL assume true; 647905#factEXIT >#66#return; 647906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648029#factFINAL assume true; 647902#factEXIT >#78#return; 647132#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649494#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649493#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649492#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 649491#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 649490#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 649482#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649481#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646990#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 646998#$Ultimate##0 ~n := #in~n; 647020#L25 assume !(~n <= 0); 647005#L26 call #t~ret0 := fact(~n - 1);< 647026#$Ultimate##0 ~n := #in~n; 649123#L25 assume !(~n <= 0); 647006#L26 call #t~ret0 := fact(~n - 1);< 647057#$Ultimate##0 ~n := #in~n; 647564#L25 assume !(~n <= 0); 647011#L26 call #t~ret0 := fact(~n - 1);< 647207#$Ultimate##0 ~n := #in~n; 647563#L25 assume ~n <= 0;#res := 1; 647562#factFINAL assume true; 647206#factEXIT >#66#return; 647204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647200#factFINAL assume true; 647055#factEXIT >#66#return; 647052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647050#factFINAL assume true; 647047#factEXIT >#66#return; 647037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649279#factFINAL assume true; 649271#factEXIT >#68#return; 646136#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646174#$Ultimate##0 ~n := #in~n; 646173#L25 assume ~n <= 0;#res := 1; 646172#factFINAL assume true; 646117#factEXIT >#70#return; 646162#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648957#$Ultimate##0 ~n := #in~n; 649115#L25 assume !(~n <= 0); 646045#L26 call #t~ret0 := fact(~n - 1);< 649114#$Ultimate##0 ~n := #in~n; 649113#L25 assume !(~n <= 0); 646040#L26 call #t~ret0 := fact(~n - 1);< 649039#$Ultimate##0 ~n := #in~n; 649112#L25 assume !(~n <= 0); 646048#L26 call #t~ret0 := fact(~n - 1);< 649044#$Ultimate##0 ~n := #in~n; 649105#L25 assume !(~n <= 0); 646044#L26 call #t~ret0 := fact(~n - 1);< 649103#$Ultimate##0 ~n := #in~n; 649102#L25 assume !(~n <= 0); 646011#L26 call #t~ret0 := fact(~n - 1);< 649069#$Ultimate##0 ~n := #in~n; 648672#L25 assume !(~n <= 0); 646009#L26 call #t~ret0 := fact(~n - 1);< 646014#$Ultimate##0 ~n := #in~n; 649048#L25 assume ~n <= 0;#res := 1; 649045#factFINAL assume true; 649042#factEXIT >#66#return; 649041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649037#factFINAL assume true; 649035#factEXIT >#66#return; 646038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 646049#factFINAL assume true; 646092#factEXIT >#66#return; 646093#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649242#factFINAL assume true; 649241#factEXIT >#66#return; 649240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649239#factFINAL assume true; 649237#factEXIT >#66#return; 649236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649235#factFINAL assume true; 649233#factEXIT >#66#return; 649234#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649269#factFINAL assume true; 649267#factEXIT >#72#return; 646085#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649904#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649902#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649897#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649812#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647865#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648637#$Ultimate##0 ~n := #in~n; 648634#L25 assume !(~n <= 0); 647696#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648705#factFINAL assume true; 648703#factEXIT >#68#return; 648218#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646065#$Ultimate##0 ~n := #in~n; 648699#L25 assume !(~n <= 0); 647727#L26 call #t~ret0 := fact(~n - 1);< 648220#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648652#factFINAL assume true; 648642#factEXIT >#70#return; 648314#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648718#$Ultimate##0 ~n := #in~n; 648717#L25 assume !(~n <= 0); 646019#L26 call #t~ret0 := fact(~n - 1);< 648224#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649155#factFINAL assume true; 649131#factEXIT >#72#return; 648756#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649907#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649893#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649892#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649890#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647861#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648637#$Ultimate##0 ~n := #in~n; 648634#L25 assume !(~n <= 0); 647696#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649199#factFINAL assume true; 649195#factEXIT >#68#return; 648097#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646065#$Ultimate##0 ~n := #in~n; 648699#L25 assume !(~n <= 0); 647727#L26 call #t~ret0 := fact(~n - 1);< 648220#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648704#factFINAL assume true; 648702#factEXIT >#70#return; 648328#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648718#$Ultimate##0 ~n := #in~n; 648717#L25 assume !(~n <= 0); 646019#L26 call #t~ret0 := fact(~n - 1);< 648224#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649464#factFINAL assume true; 649462#factEXIT >#72#return; 649153#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649929#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649928#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649927#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 646035#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 646036#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648637#$Ultimate##0 ~n := #in~n; 648634#L25 assume !(~n <= 0); 647696#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649419#factFINAL assume true; 649408#factEXIT >#68#return; 648564#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 648616#$Ultimate##0 ~n := #in~n; 648638#L25 assume !(~n <= 0); 647699#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648064#factFINAL assume true; 648057#factEXIT >#66#return; 648059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649483#factFINAL assume true; 648507#factEXIT >#70#return; 648267#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645997#$Ultimate##0 ~n := #in~n; 648820#L25 assume !(~n <= 0); 648236#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649155#factFINAL assume true; 649131#factEXIT >#72#return; 648462#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649871#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649870#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649869#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649868#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647880#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 648637#$Ultimate##0 ~n := #in~n; 648634#L25 assume !(~n <= 0); 647696#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648070#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 649399#factFINAL assume true; 649394#factEXIT >#68#return; 648092#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 646065#$Ultimate##0 ~n := #in~n; 648699#L25 assume !(~n <= 0); 647727#L26 call #t~ret0 := fact(~n - 1);< 648220#$Ultimate##0 ~n := #in~n; 649022#L25 assume !(~n <= 0); 647730#L26 call #t~ret0 := fact(~n - 1);< 649095#$Ultimate##0 ~n := #in~n; 649051#L25 assume !(~n <= 0); 647747#L26 call #t~ret0 := fact(~n - 1);< 649091#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648705#factFINAL assume true; 648703#factEXIT >#70#return; 647961#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 649142#$Ultimate##0 ~n := #in~n; 649121#L25 assume ~n <= 0;#res := 1; 647806#factFINAL assume true; 648356#factEXIT >#72#return; 648405#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649867#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 649866#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649865#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 648992#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647284#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647681#$Ultimate##0 ~n := #in~n; 647983#L25 assume !(~n <= 0); 647708#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648062#factFINAL assume true; 647214#factEXIT >#74#return; 647307#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647985#$Ultimate##0 ~n := #in~n; 647891#L25 assume !(~n <= 0); 647732#L26 call #t~ret0 := fact(~n - 1);< 647741#$Ultimate##0 ~n := #in~n; 648641#L25 assume !(~n <= 0); 647723#L26 call #t~ret0 := fact(~n - 1);< 647756#$Ultimate##0 ~n := #in~n; 649098#L25 assume !(~n <= 0); 647751#L26 call #t~ret0 := fact(~n - 1);< 647919#$Ultimate##0 ~n := #in~n; 649166#L25 assume !(~n <= 0); 646016#L26 call #t~ret0 := fact(~n - 1);< 649093#$Ultimate##0 ~n := #in~n; 649174#L25 assume !(~n <= 0); 646015#L26 call #t~ret0 := fact(~n - 1);< 646017#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648062#factFINAL assume true; 647214#factEXIT >#76#return; 647546#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 648024#$Ultimate##0 ~n := #in~n; 648725#L25 assume !(~n <= 0); 648238#L26 call #t~ret0 := fact(~n - 1);< 648241#$Ultimate##0 ~n := #in~n; 648492#L25 assume ~n <= 0;#res := 1; 648247#factFINAL assume true; 648235#factEXIT >#66#return; 648061#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648034#factFINAL assume true; 647986#factEXIT >#78#return; 648007#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649840#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649838#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649836#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649832#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647353#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648064#factFINAL assume true; 648057#factEXIT >#66#return; 647711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647811#factFINAL assume true; 647682#factEXIT >#66#return; 647678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647624#factFINAL assume true; 647616#factEXIT >#74#return; 647394#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647610#$Ultimate##0 ~n := #in~n; 647803#L25 assume !(~n <= 0); 647707#L26 call #t~ret0 := fact(~n - 1);< 647740#$Ultimate##0 ~n := #in~n; 648899#L25 assume !(~n <= 0); 647690#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647911#factFINAL assume true; 647912#factEXIT >#76#return; 647405#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645961#$Ultimate##0 ~n := #in~n; 648490#L25 assume !(~n <= 0); 647702#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647915#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648052#factFINAL assume true; 648041#factEXIT >#78#return; 648047#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649831#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649830#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649829#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649828#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647383#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648064#factFINAL assume true; 648057#factEXIT >#66#return; 647711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647811#factFINAL assume true; 647682#factEXIT >#66#return; 647678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647624#factFINAL assume true; 647616#factEXIT >#74#return; 647417#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647610#$Ultimate##0 ~n := #in~n; 647803#L25 assume !(~n <= 0); 647707#L26 call #t~ret0 := fact(~n - 1);< 647740#$Ultimate##0 ~n := #in~n; 648899#L25 assume !(~n <= 0); 647690#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647911#factFINAL assume true; 647912#factEXIT >#76#return; 647426#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645961#$Ultimate##0 ~n := #in~n; 648490#L25 assume !(~n <= 0); 647702#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#78#return; 647672#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649825#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649823#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649821#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649535#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647452#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 647625#$Ultimate##0 ~n := #in~n; 649154#L25 assume !(~n <= 0); 647686#L26 call #t~ret0 := fact(~n - 1);< 648071#$Ultimate##0 ~n := #in~n; 648726#L25 assume !(~n <= 0); 647688#L26 call #t~ret0 := fact(~n - 1);< 649130#$Ultimate##0 ~n := #in~n; 649129#L25 assume !(~n <= 0); 647693#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648064#factFINAL assume true; 648057#factEXIT >#66#return; 647711#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647811#factFINAL assume true; 647682#factEXIT >#66#return; 647678#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647624#factFINAL assume true; 647616#factEXIT >#74#return; 647483#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 647610#$Ultimate##0 ~n := #in~n; 647803#L25 assume !(~n <= 0); 647707#L26 call #t~ret0 := fact(~n - 1);< 647740#$Ultimate##0 ~n := #in~n; 648899#L25 assume !(~n <= 0); 647690#L26 call #t~ret0 := fact(~n - 1);< 647801#$Ultimate##0 ~n := #in~n; 648032#L25 assume !(~n <= 0); 647685#L26 call #t~ret0 := fact(~n - 1);< 647758#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647736#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648074#factFINAL assume true; 648065#factEXIT >#66#return; 648067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 648494#factFINAL assume true; 648472#factEXIT >#66#return; 648474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647911#factFINAL assume true; 647912#factEXIT >#76#return; 647474#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 645961#$Ultimate##0 ~n := #in~n; 648490#L25 assume !(~n <= 0); 647702#L26 call #t~ret0 := fact(~n - 1);< 648242#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 648675#L25 assume !(~n <= 0); 647700#L26 call #t~ret0 := fact(~n - 1);< 649094#$Ultimate##0 ~n := #in~n; 646067#L25 assume ~n <= 0;#res := 1; 649097#factFINAL assume true; 649090#factEXIT >#66#return; 649088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647923#factFINAL assume true; 647914#factEXIT >#66#return; 647802#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647757#factFINAL assume true; 647746#factEXIT >#66#return; 647745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647742#factFINAL assume true; 647717#factEXIT >#66#return; 647715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 647679#factFINAL assume true; 647627#factEXIT >#78#return; 647535#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 649532#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 649531#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 649530#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 649529#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 647147#L30-5 [2023-02-17 09:43:16,213 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:16,213 INFO L85 PathProgramCache]: Analyzing trace with hash 1960516519, now seen corresponding path program 46 times [2023-02-17 09:43:16,213 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:16,213 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [828612099] [2023-02-17 09:43:16,213 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:16,213 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:16,245 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:16,246 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1276025250] [2023-02-17 09:43:16,246 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:43:16,246 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:16,246 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:16,250 INFO L229 MonitoredProcess]: Starting monitored process 241 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:16,250 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (241)] Waiting until timeout for monitored process [2023-02-17 09:43:17,658 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:43:17,658 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:17,673 INFO L263 TraceCheckSpWp]: Trace formula consists of 3982 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:43:17,687 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:17,806 INFO L134 CoverageAnalysis]: Checked inductivity of 214222 backedges. 95114 proven. 332 refuted. 0 times theorem prover too weak. 118776 trivial. 0 not checked. [2023-02-17 09:43:17,807 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:17,960 INFO L134 CoverageAnalysis]: Checked inductivity of 214222 backedges. 1334 proven. 332 refuted. 0 times theorem prover too weak. 212556 trivial. 0 not checked. [2023-02-17 09:43:17,960 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:17,961 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [828612099] [2023-02-17 09:43:17,961 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:17,961 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1276025250] [2023-02-17 09:43:17,961 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1276025250] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:17,961 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:17,961 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:43:17,961 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1911384835] [2023-02-17 09:43:17,961 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:17,962 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:17,962 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:17,962 INFO L85 PathProgramCache]: Analyzing trace with hash 282084924, now seen corresponding path program 40 times [2023-02-17 09:43:17,963 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:17,963 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1917374489] [2023-02-17 09:43:17,963 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:17,963 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:17,993 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:17,994 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1222638625] [2023-02-17 09:43:17,994 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:43:17,994 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:17,994 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:17,997 INFO L229 MonitoredProcess]: Starting monitored process 242 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:17,997 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (242)] Waiting until timeout for monitored process [2023-02-17 09:43:19,025 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:43:19,025 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:19,032 INFO L263 TraceCheckSpWp]: Trace formula consists of 2066 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-17 09:43:19,038 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:19,158 INFO L134 CoverageAnalysis]: Checked inductivity of 67001 backedges. 18243 proven. 1028 refuted. 0 times theorem prover too weak. 47730 trivial. 0 not checked. [2023-02-17 09:43:19,158 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:19,661 INFO L134 CoverageAnalysis]: Checked inductivity of 67001 backedges. 135 proven. 12020 refuted. 0 times theorem prover too weak. 54846 trivial. 0 not checked. [2023-02-17 09:43:19,661 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:19,661 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1917374489] [2023-02-17 09:43:19,661 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:19,661 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1222638625] [2023-02-17 09:43:19,661 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1222638625] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:19,661 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:19,662 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 36] total 39 [2023-02-17 09:43:19,662 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [875945345] [2023-02-17 09:43:19,662 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:19,662 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:19,662 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:19,662 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2023-02-17 09:43:19,663 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=223, Invalid=1259, Unknown=0, NotChecked=0, Total=1482 [2023-02-17 09:43:19,663 INFO L87 Difference]: Start difference. First operand 3978 states and 8826 transitions. cyclomatic complexity: 4891 Second operand has 39 states, 36 states have (on average 2.5) internal successors, (90), 36 states have internal predecessors, (90), 22 states have call successors, (35), 2 states have call predecessors, (35), 18 states have return successors, (48), 20 states have call predecessors, (48), 22 states have call successors, (48) [2023-02-17 09:43:20,949 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:20,949 INFO L93 Difference]: Finished difference Result 4859 states and 11235 transitions. [2023-02-17 09:43:20,949 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4859 states and 11235 transitions. [2023-02-17 09:43:20,982 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 1137 [2023-02-17 09:43:21,026 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4859 states to 4823 states and 10998 transitions. [2023-02-17 09:43:21,026 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 861 [2023-02-17 09:43:21,026 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 861 [2023-02-17 09:43:21,027 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4823 states and 10998 transitions. [2023-02-17 09:43:21,027 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:21,027 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4823 states and 10998 transitions. [2023-02-17 09:43:21,028 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4823 states and 10998 transitions. [2023-02-17 09:43:21,101 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4823 to 4059. [2023-02-17 09:43:21,106 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4059 states, 2195 states have (on average 1.0446469248291572) internal successors, (2293), 2179 states have internal predecessors, (2293), 1612 states have call successors, (1649), 323 states have call predecessors, (1649), 252 states have return successors, (5565), 1556 states have call predecessors, (5565), 1612 states have call successors, (5565) [2023-02-17 09:43:21,123 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4059 states to 4059 states and 9507 transitions. [2023-02-17 09:43:21,123 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4059 states and 9507 transitions. [2023-02-17 09:43:21,123 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2023-02-17 09:43:21,124 INFO L428 stractBuchiCegarLoop]: Abstraction has 4059 states and 9507 transitions. [2023-02-17 09:43:21,124 INFO L335 stractBuchiCegarLoop]: ======== Iteration 70 ============ [2023-02-17 09:43:21,124 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4059 states and 9507 transitions. [2023-02-17 09:43:21,135 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 809 [2023-02-17 09:43:21,136 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:21,136 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:21,142 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [308, 308, 221, 221, 221, 221, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:21,142 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [169, 169, 139, 139, 139, 139, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:21,143 INFO L748 eck$LassoCheckResult]: Stem: 671873#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 671779#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 671780#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 671800#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 671874#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 672517#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 672514#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672509#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672510#$Ultimate##0 ~n := #in~n; 672513#L25 assume ~n <= 0;#res := 1; 672512#factFINAL assume true; 672508#factEXIT >#68#return; 672501#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672502#$Ultimate##0 ~n := #in~n; 672511#L25 assume ~n <= 0;#res := 1; 672507#factFINAL assume true; 672500#factEXIT >#70#return; 672493#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672494#$Ultimate##0 ~n := #in~n; 672503#L25 assume ~n <= 0;#res := 1; 672497#factFINAL assume true; 672492#factEXIT >#72#return; 672491#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 672488#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 672485#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 672482#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 672469#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672465#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672468#$Ultimate##0 ~n := #in~n; 672466#L25 assume !(~n <= 0); 672459#L26 call #t~ret0 := fact(~n - 1);< 672462#$Ultimate##0 ~n := #in~n; 672467#L25 assume ~n <= 0;#res := 1; 672464#factFINAL assume true; 672458#factEXIT >#66#return; 672461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672477#factFINAL assume true; 672473#factEXIT >#74#return; 672471#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672472#$Ultimate##0 ~n := #in~n; 672486#L25 assume ~n <= 0;#res := 1; 672483#factFINAL assume true; 672470#factEXIT >#76#return; 672406#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672407#$Ultimate##0 ~n := #in~n; 672463#L25 assume !(~n <= 0); 672460#L26 call #t~ret0 := fact(~n - 1);< 672462#$Ultimate##0 ~n := #in~n; 672467#L25 assume ~n <= 0;#res := 1; 672464#factFINAL assume true; 672458#factEXIT >#66#return; 672453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672452#factFINAL assume true; 672405#factEXIT >#78#return; 672402#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 672399#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 672397#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 672395#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 672391#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672365#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672367#$Ultimate##0 ~n := #in~n; 672385#L25 assume !(~n <= 0); 672378#L26 call #t~ret0 := fact(~n - 1);< 672379#$Ultimate##0 ~n := #in~n; 672414#L25 assume !(~n <= 0); 672377#L26 call #t~ret0 := fact(~n - 1);< 672413#$Ultimate##0 ~n := #in~n; 672430#L25 assume ~n <= 0;#res := 1; 672428#factFINAL assume true; 672420#factEXIT >#66#return; 672419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672415#factFINAL assume true; 672409#factEXIT >#66#return; 672411#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672443#factFINAL assume true; 672439#factEXIT >#74#return; 672393#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672394#$Ultimate##0 ~n := #in~n; 672436#L25 assume ~n <= 0;#res := 1; 672435#factFINAL assume true; 672392#factEXIT >#76#return; 672389#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672390#$Ultimate##0 ~n := #in~n; 672418#L25 assume !(~n <= 0); 672410#L26 call #t~ret0 := fact(~n - 1);< 672416#$Ultimate##0 ~n := #in~n; 672424#L25 assume !(~n <= 0); 672421#L26 call #t~ret0 := fact(~n - 1);< 672422#$Ultimate##0 ~n := #in~n; 672430#L25 assume ~n <= 0;#res := 1; 672428#factFINAL assume true; 672420#factEXIT >#66#return; 672419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672415#factFINAL assume true; 672409#factEXIT >#66#return; 672412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672417#factFINAL assume true; 672388#factEXIT >#78#return; 672387#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 672386#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 672380#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 672374#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 672371#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672366#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672367#$Ultimate##0 ~n := #in~n; 672385#L25 assume !(~n <= 0); 672378#L26 call #t~ret0 := fact(~n - 1);< 672379#$Ultimate##0 ~n := #in~n; 672414#L25 assume !(~n <= 0); 672377#L26 call #t~ret0 := fact(~n - 1);< 672413#$Ultimate##0 ~n := #in~n; 672414#L25 assume !(~n <= 0); 672377#L26 call #t~ret0 := fact(~n - 1);< 672413#$Ultimate##0 ~n := #in~n; 672430#L25 assume ~n <= 0;#res := 1; 672428#factFINAL assume true; 672420#factEXIT >#66#return; 672419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672415#factFINAL assume true; 672409#factEXIT >#66#return; 672384#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672383#factFINAL assume true; 672376#factEXIT >#66#return; 672373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672370#factFINAL assume true; 672364#factEXIT >#74#return; 672348#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672349#$Ultimate##0 ~n := #in~n; 672361#L25 assume ~n <= 0;#res := 1; 672359#factFINAL assume true; 672347#factEXIT >#76#return; 672342#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672343#$Ultimate##0 ~n := #in~n; 672451#L25 assume !(~n <= 0); 672351#L26 call #t~ret0 := fact(~n - 1);< 672404#$Ultimate##0 ~n := #in~n; 672441#L25 assume !(~n <= 0); 672353#L26 call #t~ret0 := fact(~n - 1);< 672356#$Ultimate##0 ~n := #in~n; 672437#L25 assume !(~n <= 0); 672352#L26 call #t~ret0 := fact(~n - 1);< 672434#$Ultimate##0 ~n := #in~n; 672442#L25 assume ~n <= 0;#res := 1; 672438#factFINAL assume true; 672433#factEXIT >#66#return; 672432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672431#factFINAL assume true; 672429#factEXIT >#66#return; 672427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672426#factFINAL assume true; 672425#factEXIT >#66#return; 672355#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672528#factFINAL assume true; 672341#factEXIT >#78#return; 672336#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 672335#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 672333#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 672329#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 672328#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672325#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672326#$Ultimate##0 ~n := #in~n; 672408#L25 assume !(~n <= 0); 672354#L26 call #t~ret0 := fact(~n - 1);< 672356#$Ultimate##0 ~n := #in~n; 672437#L25 assume !(~n <= 0); 672352#L26 call #t~ret0 := fact(~n - 1);< 672434#$Ultimate##0 ~n := #in~n; 672437#L25 assume !(~n <= 0); 672352#L26 call #t~ret0 := fact(~n - 1);< 672434#$Ultimate##0 ~n := #in~n; 672437#L25 assume !(~n <= 0); 672352#L26 call #t~ret0 := fact(~n - 1);< 672434#$Ultimate##0 ~n := #in~n; 672442#L25 assume ~n <= 0;#res := 1; 672438#factFINAL assume true; 672433#factEXIT >#66#return; 672432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672431#factFINAL assume true; 672429#factEXIT >#66#return; 672427#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672426#factFINAL assume true; 672425#factEXIT >#66#return; 672423#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672403#factFINAL assume true; 672350#factEXIT >#66#return; 672340#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672331#factFINAL assume true; 672324#factEXIT >#74#return; 672316#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672317#$Ultimate##0 ~n := #in~n; 672332#L25 assume ~n <= 0;#res := 1; 672323#factFINAL assume true; 672315#factEXIT >#76#return; 672234#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672313#$Ultimate##0 ~n := #in~n; 672311#L25 assume !(~n <= 0); 672294#L26 call #t~ret0 := fact(~n - 1);< 672309#$Ultimate##0 ~n := #in~n; 672506#L25 assume !(~n <= 0); 672296#L26 call #t~ret0 := fact(~n - 1);< 672476#$Ultimate##0 ~n := #in~n; 672505#L25 assume !(~n <= 0); 672290#L26 call #t~ret0 := fact(~n - 1);< 672499#$Ultimate##0 ~n := #in~n; 672505#L25 assume !(~n <= 0); 672290#L26 call #t~ret0 := fact(~n - 1);< 672499#$Ultimate##0 ~n := #in~n; 672520#L25 assume ~n <= 0;#res := 1; 672504#factFINAL assume true; 672498#factEXIT >#66#return; 672496#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672495#factFINAL assume true; 672490#factEXIT >#66#return; 672487#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672484#factFINAL assume true; 672475#factEXIT >#66#return; 672474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672307#factFINAL assume true; 672308#factEXIT >#66#return; 672360#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672717#factFINAL assume true; 672233#factEXIT >#78#return; 672235#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 672680#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 672679#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 672678#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 672674#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672076#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672077#$Ultimate##0 ~n := #in~n; 672104#L25 assume !(~n <= 0); 672099#L26 call #t~ret0 := fact(~n - 1);< 672100#$Ultimate##0 ~n := #in~n; 672129#L25 assume !(~n <= 0); 672112#L26 call #t~ret0 := fact(~n - 1);< 672113#$Ultimate##0 ~n := #in~n; 672125#L25 assume !(~n <= 0); 672121#L26 call #t~ret0 := fact(~n - 1);< 672123#$Ultimate##0 ~n := #in~n; 672140#L25 assume !(~n <= 0); 672122#L26 call #t~ret0 := fact(~n - 1);< 672136#$Ultimate##0 ~n := #in~n; 672140#L25 assume !(~n <= 0); 672122#L26 call #t~ret0 := fact(~n - 1);< 672136#$Ultimate##0 ~n := #in~n; 672144#L25 assume ~n <= 0;#res := 1; 672143#factFINAL assume true; 672142#factEXIT >#66#return; 672141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672138#factFINAL assume true; 672135#factEXIT >#66#return; 672133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672130#factFINAL assume true; 672120#factEXIT >#66#return; 672119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672116#factFINAL assume true; 672111#factEXIT >#66#return; 672109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672103#factFINAL assume true; 672098#factEXIT >#66#return; 672095#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672089#factFINAL assume true; 672075#factEXIT >#74#return; 672042#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672073#$Ultimate##0 ~n := #in~n; 672206#L25 assume ~n <= 0;#res := 1; 672041#factFINAL assume true; 672043#factEXIT >#76#return; 672058#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672065#$Ultimate##0 ~n := #in~n; 672061#L25 assume !(~n <= 0); 672010#L26 call #t~ret0 := fact(~n - 1);< 672056#$Ultimate##0 ~n := #in~n; 672202#L25 assume !(~n <= 0); 672020#L26 call #t~ret0 := fact(~n - 1);< 672063#$Ultimate##0 ~n := #in~n; 672160#L25 assume !(~n <= 0); 672019#L26 call #t~ret0 := fact(~n - 1);< 672151#$Ultimate##0 ~n := #in~n; 672164#L25 assume !(~n <= 0); 672021#L26 call #t~ret0 := fact(~n - 1);< 672155#$Ultimate##0 ~n := #in~n; 672165#L25 assume !(~n <= 0); 672016#L26 call #t~ret0 := fact(~n - 1);< 672162#$Ultimate##0 ~n := #in~n; 672166#L25 assume ~n <= 0;#res := 1; 672163#factFINAL assume true; 672161#factEXIT >#66#return; 672157#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672156#factFINAL assume true; 672154#factEXIT >#66#return; 672153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672152#factFINAL assume true; 672150#factEXIT >#66#return; 672146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672145#factFINAL assume true; 672062#factEXIT >#66#return; 672059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672057#factFINAL assume true; 672055#factEXIT >#66#return; 672024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672701#factFINAL assume true; 672158#factEXIT >#78#return; 671988#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 671987#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 671986#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 671985#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 671984#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 671983#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 671982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 671981#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 671967#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671976#$Ultimate##0 ~n := #in~n; 671980#L25 assume !(~n <= 0); 672815#L26 call #t~ret0 := fact(~n - 1);< 672874#$Ultimate##0 ~n := #in~n; 674543#L25 assume ~n <= 0;#res := 1; 674542#factFINAL assume true; 674541#factEXIT >#66#return; 674539#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674536#factFINAL assume true; 674533#factEXIT >#68#return; 671934#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671978#$Ultimate##0 ~n := #in~n; 671979#L25 assume ~n <= 0;#res := 1; 671977#factFINAL assume true; 671933#factEXIT >#70#return; 671968#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674530#$Ultimate##0 ~n := #in~n; 673051#L25 assume !(~n <= 0); 671787#L26 call #t~ret0 := fact(~n - 1);< 674535#$Ultimate##0 ~n := #in~n; 674538#L25 assume ~n <= 0;#res := 1; 674537#factFINAL assume true; 674534#factEXIT >#66#return; 674532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674531#factFINAL assume true; 674529#factEXIT >#72#return; 674528#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 674527#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 674526#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 674523#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 674522#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 674416#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671847#$Ultimate##0 ~n := #in~n; 674524#L25 assume !(~n <= 0); 673571#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674520#factFINAL assume true; 674405#factEXIT >#68#return; 674417#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674517#$Ultimate##0 ~n := #in~n; 674525#L25 assume !(~n <= 0); 673892#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674520#factFINAL assume true; 674405#factEXIT >#70#return; 671860#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671854#$Ultimate##0 ~n := #in~n; 671868#L25 assume ~n <= 0;#res := 1; 673961#factFINAL assume true; 674202#factEXIT >#72#return; 674201#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 674200#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 674199#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 674198#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 674197#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673389#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673492#$Ultimate##0 ~n := #in~n; 674564#L25 assume !(~n <= 0); 673563#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#74#return; 671826#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673873#$Ultimate##0 ~n := #in~n; 671825#L25 assume !(~n <= 0); 671842#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#76#return; 671827#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673873#$Ultimate##0 ~n := #in~n; 671825#L25 assume !(~n <= 0); 671842#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#78#return; 673856#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 674521#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 674519#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 674518#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 674400#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673524#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671699#$Ultimate##0 ~n := #in~n; 674381#L25 assume !(~n <= 0); 673582#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674399#factFINAL assume true; 674396#factEXIT >#74#return; 671837#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673873#$Ultimate##0 ~n := #in~n; 671825#L25 assume !(~n <= 0); 671842#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#76#return; 673846#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674182#$Ultimate##0 ~n := #in~n; 674563#L25 assume !(~n <= 0); 673760#L26 call #t~ret0 := fact(~n - 1);< 673896#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#78#return; 674186#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 674393#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 674392#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 674389#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 674387#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673530#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671699#$Ultimate##0 ~n := #in~n; 674381#L25 assume !(~n <= 0); 673582#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#74#return; 671836#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673873#$Ultimate##0 ~n := #in~n; 671825#L25 assume !(~n <= 0); 671842#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#76#return; 673531#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673495#$Ultimate##0 ~n := #in~n; 674380#L25 assume !(~n <= 0); 673570#L26 call #t~ret0 := fact(~n - 1);< 673614#$Ultimate##0 ~n := #in~n; 674391#L25 assume !(~n <= 0); 673607#L26 call #t~ret0 := fact(~n - 1);< 673768#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674399#factFINAL assume true; 674396#factEXIT >#78#return; 674397#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 674700#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 674699#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 674698#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 674697#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673201#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674548#factFINAL assume true; 673104#factEXIT >#74#return; 671828#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673873#$Ultimate##0 ~n := #in~n; 671825#L25 assume !(~n <= 0); 671842#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#76#return; 673494#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673495#$Ultimate##0 ~n := #in~n; 674380#L25 assume !(~n <= 0); 673570#L26 call #t~ret0 := fact(~n - 1);< 673614#$Ultimate##0 ~n := #in~n; 674391#L25 assume !(~n <= 0); 673607#L26 call #t~ret0 := fact(~n - 1);< 673768#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#78#return; 673471#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 673493#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 673103#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 673101#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 673095#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672924#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672997#$Ultimate##0 ~n := #in~n; 672994#L25 assume !(~n <= 0); 672989#L26 call #t~ret0 := fact(~n - 1);< 672992#$Ultimate##0 ~n := #in~n; 672991#L25 assume !(~n <= 0); 672984#L26 call #t~ret0 := fact(~n - 1);< 672987#$Ultimate##0 ~n := #in~n; 672986#L25 assume !(~n <= 0); 672948#L26 call #t~ret0 := fact(~n - 1);< 672971#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672965#factFINAL assume true; 672962#factEXIT >#66#return; 672961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672957#factFINAL assume true; 672944#factEXIT >#66#return; 672955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673040#factFINAL assume true; 673038#factEXIT >#66#return; 673037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673036#factFINAL assume true; 673034#factEXIT >#66#return; 673035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673044#factFINAL assume true; 673098#factEXIT >#74#return; 673018#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671870#$Ultimate##0 ~n := #in~n; 673017#L25 assume !(~n <= 0); 673019#L26 call #t~ret0 := fact(~n - 1);< 673079#$Ultimate##0 ~n := #in~n; 673082#L25 assume ~n <= 0;#res := 1; 673080#factFINAL assume true; 673078#factEXIT >#66#return; 673077#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673076#factFINAL assume true; 673075#factEXIT >#76#return; 672926#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672990#$Ultimate##0 ~n := #in~n; 672988#L25 assume !(~n <= 0); 672949#L26 call #t~ret0 := fact(~n - 1);< 672966#$Ultimate##0 ~n := #in~n; 672982#L25 assume !(~n <= 0); 672953#L26 call #t~ret0 := fact(~n - 1);< 672971#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672965#factFINAL assume true; 672962#factEXIT >#66#return; 672961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672957#factFINAL assume true; 672944#factEXIT >#66#return; 672955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673040#factFINAL assume true; 673038#factEXIT >#66#return; 673037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673036#factFINAL assume true; 673034#factEXIT >#66#return; 673035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673044#factFINAL assume true; 673098#factEXIT >#78#return; 672928#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 673100#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 673089#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 673088#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 673087#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 673086#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 673085#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 673074#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 671775#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671776#$Ultimate##0 ~n := #in~n; 672865#L25 assume !(~n <= 0); 672813#L26 call #t~ret0 := fact(~n - 1);< 672864#$Ultimate##0 ~n := #in~n; 672869#L25 assume !(~n <= 0); 672816#L26 call #t~ret0 := fact(~n - 1);< 672868#$Ultimate##0 ~n := #in~n; 672872#L25 assume ~n <= 0;#res := 1; 672871#factFINAL assume true; 672867#factEXIT >#66#return; 672866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672863#factFINAL assume true; 672860#factEXIT >#66#return; 672861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674771#factFINAL assume true; 674770#factEXIT >#68#return; 671958#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671978#$Ultimate##0 ~n := #in~n; 671979#L25 assume ~n <= 0;#res := 1; 671977#factFINAL assume true; 671933#factEXIT >#70#return; 671972#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673054#$Ultimate##0 ~n := #in~n; 673055#L25 assume !(~n <= 0); 671788#L26 call #t~ret0 := fact(~n - 1);< 673048#$Ultimate##0 ~n := #in~n; 673097#L25 assume !(~n <= 0); 671785#L26 call #t~ret0 := fact(~n - 1);< 671790#$Ultimate##0 ~n := #in~n; 671821#L25 assume ~n <= 0;#res := 1; 671824#factFINAL assume true; 674758#factEXIT >#66#return; 674752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674748#factFINAL assume true; 674743#factEXIT >#66#return; 674738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674737#factFINAL assume true; 674729#factEXIT >#72#return; 674735#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675591#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675589#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675586#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673832#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674680#$Ultimate##0 ~n := #in~n; 674678#L25 assume !(~n <= 0); 673592#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674804#factFINAL assume true; 674803#factEXIT >#68#return; 674044#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674133#$Ultimate##0 ~n := #in~n; 674132#L25 assume !(~n <= 0); 673564#L26 call #t~ret0 := fact(~n - 1);< 674116#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674520#factFINAL assume true; 674405#factEXIT >#70#return; 674233#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671770#$Ultimate##0 ~n := #in~n; 675754#L25 assume !(~n <= 0); 673891#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674842#factFINAL assume true; 674828#factEXIT >#72#return; 674829#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675495#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675494#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675493#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675492#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673830#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674680#$Ultimate##0 ~n := #in~n; 674678#L25 assume !(~n <= 0); 673592#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674804#factFINAL assume true; 674803#factEXIT >#68#return; 674051#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674133#$Ultimate##0 ~n := #in~n; 674132#L25 assume !(~n <= 0); 673564#L26 call #t~ret0 := fact(~n - 1);< 674116#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674804#factFINAL assume true; 674803#factEXIT >#70#return; 674240#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671770#$Ultimate##0 ~n := #in~n; 675754#L25 assume ~n <= 0;#res := 1; 673961#factFINAL assume true; 674202#factEXIT >#72#return; 674339#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675491#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675489#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675477#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 671698#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671699#$Ultimate##0 ~n := #in~n; 674381#L25 assume !(~n <= 0); 673582#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674399#factFINAL assume true; 674396#factEXIT >#74#return; 673225#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673979#$Ultimate##0 ~n := #in~n; 673966#L25 assume !(~n <= 0); 673579#L26 call #t~ret0 := fact(~n - 1);< 673838#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#76#return; 673848#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674182#$Ultimate##0 ~n := #in~n; 674563#L25 assume !(~n <= 0); 673760#L26 call #t~ret0 := fact(~n - 1);< 673896#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#78#return; 673868#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675422#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675421#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675419#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675417#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673515#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671699#$Ultimate##0 ~n := #in~n; 674381#L25 assume !(~n <= 0); 673582#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#74#return; 673228#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673979#$Ultimate##0 ~n := #in~n; 673966#L25 assume !(~n <= 0); 673579#L26 call #t~ret0 := fact(~n - 1);< 673838#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#76#return; 673851#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674182#$Ultimate##0 ~n := #in~n; 674563#L25 assume !(~n <= 0); 673760#L26 call #t~ret0 := fact(~n - 1);< 673896#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#78#return; 674192#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675420#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675418#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675416#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675414#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673230#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674548#factFINAL assume true; 673104#factEXIT >#74#return; 673226#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673979#$Ultimate##0 ~n := #in~n; 673966#L25 assume !(~n <= 0); 673579#L26 call #t~ret0 := fact(~n - 1);< 673838#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#76#return; 673517#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673495#$Ultimate##0 ~n := #in~n; 674380#L25 assume !(~n <= 0); 673570#L26 call #t~ret0 := fact(~n - 1);< 673614#$Ultimate##0 ~n := #in~n; 674391#L25 assume !(~n <= 0); 673607#L26 call #t~ret0 := fact(~n - 1);< 673768#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674399#factFINAL assume true; 674396#factEXIT >#78#return; 673542#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675397#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675396#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675388#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675387#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673236#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674548#factFINAL assume true; 673104#factEXIT >#74#return; 673233#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673979#$Ultimate##0 ~n := #in~n; 673966#L25 assume !(~n <= 0); 673579#L26 call #t~ret0 := fact(~n - 1);< 673838#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#76#return; 673518#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673495#$Ultimate##0 ~n := #in~n; 674380#L25 assume !(~n <= 0); 673570#L26 call #t~ret0 := fact(~n - 1);< 673614#$Ultimate##0 ~n := #in~n; 674391#L25 assume !(~n <= 0); 673607#L26 call #t~ret0 := fact(~n - 1);< 673768#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#78#return; 673485#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675497#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675487#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675485#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 673069#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672925#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672997#$Ultimate##0 ~n := #in~n; 672994#L25 assume !(~n <= 0); 672989#L26 call #t~ret0 := fact(~n - 1);< 672992#$Ultimate##0 ~n := #in~n; 672991#L25 assume !(~n <= 0); 672984#L26 call #t~ret0 := fact(~n - 1);< 672987#$Ultimate##0 ~n := #in~n; 672986#L25 assume !(~n <= 0); 672948#L26 call #t~ret0 := fact(~n - 1);< 672971#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672965#factFINAL assume true; 672962#factEXIT >#66#return; 672961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672957#factFINAL assume true; 672944#factEXIT >#66#return; 672955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673040#factFINAL assume true; 673038#factEXIT >#66#return; 673037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673036#factFINAL assume true; 673034#factEXIT >#66#return; 673033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673032#factFINAL assume true; 673030#factEXIT >#66#return; 673029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673028#factFINAL assume true; 673027#factEXIT >#66#return; 673024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673020#factFINAL assume true; 673021#factEXIT >#74#return; 671706#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672978#$Ultimate##0 ~n := #in~n; 672975#L25 assume !(~n <= 0); 672945#L26 call #t~ret0 := fact(~n - 1);< 672973#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673099#factFINAL assume true; 673094#factEXIT >#76#return; 672892#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673002#$Ultimate##0 ~n := #in~n; 673000#L25 assume !(~n <= 0); 672958#L26 call #t~ret0 := fact(~n - 1);< 672996#$Ultimate##0 ~n := #in~n; 672993#L25 assume !(~n <= 0); 672951#L26 call #t~ret0 := fact(~n - 1);< 672960#$Ultimate##0 ~n := #in~n; 673006#L25 assume !(~n <= 0); 672954#L26 call #t~ret0 := fact(~n - 1);< 672964#$Ultimate##0 ~n := #in~n; 672982#L25 assume !(~n <= 0); 672953#L26 call #t~ret0 := fact(~n - 1);< 672971#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672965#factFINAL assume true; 672962#factEXIT >#66#return; 672961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672957#factFINAL assume true; 672944#factEXIT >#66#return; 672955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673040#factFINAL assume true; 673038#factEXIT >#66#return; 673037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673036#factFINAL assume true; 673034#factEXIT >#66#return; 673035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673044#factFINAL assume true; 673098#factEXIT >#78#return; 672931#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675534#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675514#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675513#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 675512#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 675511#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 675510#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675107#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672806#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671776#$Ultimate##0 ~n := #in~n; 672865#L25 assume !(~n <= 0); 672813#L26 call #t~ret0 := fact(~n - 1);< 672864#$Ultimate##0 ~n := #in~n; 672869#L25 assume !(~n <= 0); 672816#L26 call #t~ret0 := fact(~n - 1);< 672868#$Ultimate##0 ~n := #in~n; 672872#L25 assume ~n <= 0;#res := 1; 672871#factFINAL assume true; 672867#factEXIT >#66#return; 672866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672863#factFINAL assume true; 672860#factEXIT >#66#return; 672861#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674771#factFINAL assume true; 674770#factEXIT >#68#return; 671941#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671978#$Ultimate##0 ~n := #in~n; 671979#L25 assume ~n <= 0;#res := 1; 671977#factFINAL assume true; 671933#factEXIT >#70#return; 671969#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674736#$Ultimate##0 ~n := #in~n; 674986#L25 assume !(~n <= 0); 674931#L26 call #t~ret0 := fact(~n - 1);< 674934#$Ultimate##0 ~n := #in~n; 675084#L25 assume !(~n <= 0); 674989#L26 call #t~ret0 := fact(~n - 1);< 674991#$Ultimate##0 ~n := #in~n; 674993#L25 assume ~n <= 0;#res := 1; 674992#factFINAL assume true; 674988#factEXIT >#66#return; 674987#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674983#factFINAL assume true; 674925#factEXIT >#66#return; 674924#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674894#factFINAL assume true; 674884#factEXIT >#72#return; 674889#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675105#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675104#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675103#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675102#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 674632#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674874#$Ultimate##0 ~n := #in~n; 674947#L25 assume !(~n <= 0); 674651#L26 call #t~ret0 := fact(~n - 1);< 674944#$Ultimate##0 ~n := #in~n; 674956#L25 assume !(~n <= 0); 674654#L26 call #t~ret0 := fact(~n - 1);< 674954#$Ultimate##0 ~n := #in~n; 675016#L25 assume ~n <= 0;#res := 1; 675015#factFINAL assume true; 674953#factEXIT >#66#return; 674951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674949#factFINAL assume true; 674942#factEXIT >#66#return; 674940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674890#factFINAL assume true; 674873#factEXIT >#68#return; 674602#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671845#$Ultimate##0 ~n := #in~n; 674628#L25 assume ~n <= 0;#res := 1; 674627#factFINAL assume true; 674596#factEXIT >#70#return; 673779#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674679#$Ultimate##0 ~n := #in~n; 674677#L25 assume !(~n <= 0); 673759#L26 call #t~ret0 := fact(~n - 1);< 673770#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673764#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674869#factFINAL assume true; 674858#factEXIT >#72#return; 674860#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675096#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675095#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675094#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675093#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673816#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674680#$Ultimate##0 ~n := #in~n; 674678#L25 assume !(~n <= 0); 673592#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674804#factFINAL assume true; 674803#factEXIT >#68#return; 674023#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674133#$Ultimate##0 ~n := #in~n; 674132#L25 assume !(~n <= 0); 673564#L26 call #t~ret0 := fact(~n - 1);< 674116#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674804#factFINAL assume true; 674803#factEXIT >#70#return; 674298#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671770#$Ultimate##0 ~n := #in~n; 675754#L25 assume ~n <= 0;#res := 1; 673961#factFINAL assume true; 674202#factEXIT >#72#return; 674366#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675598#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675596#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675594#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 674813#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673819#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674680#$Ultimate##0 ~n := #in~n; 674678#L25 assume !(~n <= 0); 673592#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674845#factFINAL assume true; 674843#factEXIT >#68#return; 674090#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674133#$Ultimate##0 ~n := #in~n; 674132#L25 assume !(~n <= 0); 673564#L26 call #t~ret0 := fact(~n - 1);< 674116#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 674549#L25 assume !(~n <= 0); 673605#L26 call #t~ret0 := fact(~n - 1);< 673883#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674808#factFINAL assume true; 674807#factEXIT >#70#return; 674215#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671770#$Ultimate##0 ~n := #in~n; 675754#L25 assume ~n <= 0;#res := 1; 673961#factFINAL assume true; 674202#factEXIT >#72#return; 674317#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675223#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675221#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675220#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675219#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673208#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671872#$Ultimate##0 ~n := #in~n; 674179#L25 assume !(~n <= 0); 673573#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#74#return; 673217#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674128#$Ultimate##0 ~n := #in~n; 674126#L25 assume !(~n <= 0); 673569#L26 call #t~ret0 := fact(~n - 1);< 674117#$Ultimate##0 ~n := #in~n; 674401#L25 assume !(~n <= 0); 673565#L26 call #t~ret0 := fact(~n - 1);< 673769#$Ultimate##0 ~n := #in~n; 674549#L25 assume !(~n <= 0); 673605#L26 call #t~ret0 := fact(~n - 1);< 673883#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674548#factFINAL assume true; 673104#factEXIT >#76#return; 671840#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673873#$Ultimate##0 ~n := #in~n; 671825#L25 assume !(~n <= 0); 671842#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#78#return; 673870#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675431#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675430#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675429#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675428#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673266#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674548#factFINAL assume true; 673104#factEXIT >#74#return; 673292#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673755#$Ultimate##0 ~n := #in~n; 673754#L25 assume !(~n <= 0); 673568#L26 call #t~ret0 := fact(~n - 1);< 673599#$Ultimate##0 ~n := #in~n; 674139#L25 assume !(~n <= 0); 673581#L26 call #t~ret0 := fact(~n - 1);< 673614#$Ultimate##0 ~n := #in~n; 674391#L25 assume !(~n <= 0); 673607#L26 call #t~ret0 := fact(~n - 1);< 673768#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#76#return; 673546#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674182#$Ultimate##0 ~n := #in~n; 674563#L25 assume !(~n <= 0); 673760#L26 call #t~ret0 := fact(~n - 1);< 673896#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#78#return; 674188#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675413#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675412#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675411#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675410#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673336#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673676#factFINAL assume true; 673656#factEXIT >#66#return; 673671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674776#factFINAL assume true; 674551#factEXIT >#66#return; 674550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673504#factFINAL assume true; 673505#factEXIT >#74#return; 673407#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673496#$Ultimate##0 ~n := #in~n; 673753#L25 assume !(~n <= 0); 673575#L26 call #t~ret0 := fact(~n - 1);< 673674#$Ultimate##0 ~n := #in~n; 674402#L25 assume !(~n <= 0); 673591#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673676#factFINAL assume true; 673656#factEXIT >#66#return; 673671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674776#factFINAL assume true; 674551#factEXIT >#66#return; 674550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673504#factFINAL assume true; 673505#factEXIT >#76#return; 673443#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673492#$Ultimate##0 ~n := #in~n; 674564#L25 assume !(~n <= 0); 673563#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674399#factFINAL assume true; 674396#factEXIT >#78#return; 673554#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675408#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675403#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675402#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675148#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673451#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673676#factFINAL assume true; 673656#factEXIT >#66#return; 673671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674776#factFINAL assume true; 674551#factEXIT >#66#return; 674550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673504#factFINAL assume true; 673505#factEXIT >#74#return; 673469#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673496#$Ultimate##0 ~n := #in~n; 673753#L25 assume !(~n <= 0); 673575#L26 call #t~ret0 := fact(~n - 1);< 673674#$Ultimate##0 ~n := #in~n; 674402#L25 assume !(~n <= 0); 673591#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673676#factFINAL assume true; 673656#factEXIT >#66#return; 673671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674776#factFINAL assume true; 674551#factEXIT >#66#return; 674550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673504#factFINAL assume true; 673505#factEXIT >#76#return; 673106#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673492#$Ultimate##0 ~n := #in~n; 674564#L25 assume !(~n <= 0); 673563#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#78#return; 673479#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675137#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675136#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675135#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675134#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672891#L30-5 [2023-02-17 09:43:21,143 INFO L750 eck$LassoCheckResult]: Loop: 672891#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672997#$Ultimate##0 ~n := #in~n; 672994#L25 assume !(~n <= 0); 672989#L26 call #t~ret0 := fact(~n - 1);< 672992#$Ultimate##0 ~n := #in~n; 672991#L25 assume !(~n <= 0); 672984#L26 call #t~ret0 := fact(~n - 1);< 672987#$Ultimate##0 ~n := #in~n; 672986#L25 assume !(~n <= 0); 672948#L26 call #t~ret0 := fact(~n - 1);< 672971#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672965#factFINAL assume true; 672962#factEXIT >#66#return; 672961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672957#factFINAL assume true; 672944#factEXIT >#66#return; 672955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673040#factFINAL assume true; 673038#factEXIT >#66#return; 673037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673036#factFINAL assume true; 673034#factEXIT >#66#return; 673033#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673032#factFINAL assume true; 673030#factEXIT >#66#return; 673029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673028#factFINAL assume true; 673027#factEXIT >#66#return; 673026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673041#factFINAL assume true; 673025#factEXIT >#66#return; 673023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673022#factFINAL assume true; 673015#factEXIT >#74#return; 672904#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 672940#$Ultimate##0 ~n := #in~n; 672968#L25 assume !(~n <= 0); 672950#L26 call #t~ret0 := fact(~n - 1);< 672956#$Ultimate##0 ~n := #in~n; 673006#L25 assume !(~n <= 0); 672954#L26 call #t~ret0 := fact(~n - 1);< 672964#$Ultimate##0 ~n := #in~n; 672982#L25 assume !(~n <= 0); 672953#L26 call #t~ret0 := fact(~n - 1);< 672971#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672965#factFINAL assume true; 672962#factEXIT >#66#return; 672961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672957#factFINAL assume true; 672944#factEXIT >#66#return; 672955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673040#factFINAL assume true; 673038#factEXIT >#66#return; 673037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673036#factFINAL assume true; 673034#factEXIT >#66#return; 673035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673044#factFINAL assume true; 673098#factEXIT >#76#return; 671746#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 672938#$Ultimate##0 ~n := #in~n; 672985#L25 assume !(~n <= 0); 672947#L26 call #t~ret0 := fact(~n - 1);< 672983#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672980#L25 assume !(~n <= 0); 672952#L26 call #t~ret0 := fact(~n - 1);< 672977#$Ultimate##0 ~n := #in~n; 672981#L25 assume ~n <= 0;#res := 1; 672979#factFINAL assume true; 672976#factEXIT >#66#return; 672974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672972#factFINAL assume true; 672969#factEXIT >#66#return; 672967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672965#factFINAL assume true; 672962#factEXIT >#66#return; 672961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672957#factFINAL assume true; 672944#factEXIT >#66#return; 672955#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673040#factFINAL assume true; 673038#factEXIT >#66#return; 673037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673036#factFINAL assume true; 673034#factEXIT >#66#return; 673035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673044#factFINAL assume true; 673098#factEXIT >#78#return; 672937#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675122#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675121#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675120#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 675119#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 675118#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 675117#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675116#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672803#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 672827#$Ultimate##0 ~n := #in~n; 672826#L25 assume !(~n <= 0); 672818#L26 call #t~ret0 := fact(~n - 1);< 672836#$Ultimate##0 ~n := #in~n; 672873#L25 assume !(~n <= 0); 672820#L26 call #t~ret0 := fact(~n - 1);< 672862#$Ultimate##0 ~n := #in~n; 672869#L25 assume !(~n <= 0); 672816#L26 call #t~ret0 := fact(~n - 1);< 672868#$Ultimate##0 ~n := #in~n; 672869#L25 assume !(~n <= 0); 672816#L26 call #t~ret0 := fact(~n - 1);< 672868#$Ultimate##0 ~n := #in~n; 672869#L25 assume !(~n <= 0); 672816#L26 call #t~ret0 := fact(~n - 1);< 672868#$Ultimate##0 ~n := #in~n; 672872#L25 assume ~n <= 0;#res := 1; 672871#factFINAL assume true; 672867#factEXIT >#66#return; 672866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672863#factFINAL assume true; 672860#factEXIT >#66#return; 672857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672856#factFINAL assume true; 672854#factEXIT >#66#return; 672853#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672851#factFINAL assume true; 672848#factEXIT >#66#return; 672845#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 672844#factFINAL assume true; 672840#factEXIT >#66#return; 672841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674774#factFINAL assume true; 674773#factEXIT >#68#return; 671963#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671978#$Ultimate##0 ~n := #in~n; 671979#L25 assume ~n <= 0;#res := 1; 671977#factFINAL assume true; 671933#factEXIT >#70#return; 671910#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671893#$Ultimate##0 ~n := #in~n; 671906#L25 assume !(~n <= 0); 671912#L26 call #t~ret0 := fact(~n - 1);< 674690#$Ultimate##0 ~n := #in~n; 673066#L25 assume !(~n <= 0); 671915#L26 call #t~ret0 := fact(~n - 1);< 671916#$Ultimate##0 ~n := #in~n; 674683#L25 assume !(~n <= 0); 673058#L26 call #t~ret0 := fact(~n - 1);< 673063#$Ultimate##0 ~n := #in~n; 673059#L25 assume !(~n <= 0); 673049#L26 call #t~ret0 := fact(~n - 1);< 673056#$Ultimate##0 ~n := #in~n; 673057#L25 assume !(~n <= 0); 671786#L26 call #t~ret0 := fact(~n - 1);< 673050#$Ultimate##0 ~n := #in~n; 673097#L25 assume !(~n <= 0); 671785#L26 call #t~ret0 := fact(~n - 1);< 671790#$Ultimate##0 ~n := #in~n; 671821#L25 assume ~n <= 0;#res := 1; 671824#factFINAL assume true; 674758#factEXIT >#66#return; 674752#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674748#factFINAL assume true; 674743#factEXIT >#66#return; 674744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674767#factFINAL assume true; 674766#factEXIT >#66#return; 674765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674764#factFINAL assume true; 674763#factEXIT >#66#return; 674762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674761#factFINAL assume true; 674756#factEXIT >#66#return; 674757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674759#factFINAL assume true; 674753#factEXIT >#66#return; 674749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674745#factFINAL assume true; 674739#factEXIT >#72#return; 671795#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 671796#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675641#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675640#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675639#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673689#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674390#$Ultimate##0 ~n := #in~n; 674388#L25 assume !(~n <= 0); 673594#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674811#factFINAL assume true; 674810#factEXIT >#68#return; 674491#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671847#$Ultimate##0 ~n := #in~n; 674524#L25 assume !(~n <= 0); 673571#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673893#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674520#factFINAL assume true; 674405#factEXIT >#70#return; 674149#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674145#$Ultimate##0 ~n := #in~n; 674167#L25 assume !(~n <= 0); 673587#L26 call #t~ret0 := fact(~n - 1);< 673951#$Ultimate##0 ~n := #in~n; 674131#L25 assume !(~n <= 0); 673593#L26 call #t~ret0 := fact(~n - 1);< 673838#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 674549#L25 assume !(~n <= 0); 673605#L26 call #t~ret0 := fact(~n - 1);< 673883#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 675129#factFINAL assume true; 674922#factEXIT >#72#return; 674838#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675676#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675675#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675674#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675673#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673731#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674390#$Ultimate##0 ~n := #in~n; 674388#L25 assume !(~n <= 0); 673594#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674974#factFINAL assume true; 674971#factEXIT >#68#return; 674053#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674133#$Ultimate##0 ~n := #in~n; 674132#L25 assume !(~n <= 0); 673564#L26 call #t~ret0 := fact(~n - 1);< 674116#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674804#factFINAL assume true; 674803#factEXIT >#70#return; 673633#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674137#$Ultimate##0 ~n := #in~n; 674134#L25 assume !(~n <= 0); 673585#L26 call #t~ret0 := fact(~n - 1);< 673614#$Ultimate##0 ~n := #in~n; 674391#L25 assume !(~n <= 0); 673607#L26 call #t~ret0 := fact(~n - 1);< 673768#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 674553#L25 assume !(~n <= 0); 673879#L26 call #t~ret0 := fact(~n - 1);< 673884#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674948#factFINAL assume true; 674923#factEXIT >#72#return; 674913#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675733#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675732#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675731#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675730#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673708#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674390#$Ultimate##0 ~n := #in~n; 674388#L25 assume !(~n <= 0); 673594#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674811#factFINAL assume true; 674810#factEXIT >#68#return; 674507#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 671847#$Ultimate##0 ~n := #in~n; 674524#L25 assume !(~n <= 0); 673571#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673676#factFINAL assume true; 673656#factEXIT >#66#return; 673671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674776#factFINAL assume true; 674551#factEXIT >#66#return; 674552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674713#factFINAL assume true; 674706#factEXIT >#70#return; 674213#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671770#$Ultimate##0 ~n := #in~n; 675754#L25 assume !(~n <= 0); 673891#L26 call #t~ret0 := fact(~n - 1);< 673895#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674842#factFINAL assume true; 674828#factEXIT >#72#return; 674326#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675710#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675707#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675705#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675704#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673695#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 674390#$Ultimate##0 ~n := #in~n; 674388#L25 assume !(~n <= 0); 673594#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674845#factFINAL assume true; 674843#factEXIT >#68#return; 674043#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 674133#$Ultimate##0 ~n := #in~n; 674132#L25 assume !(~n <= 0); 673564#L26 call #t~ret0 := fact(~n - 1);< 674116#$Ultimate##0 ~n := #in~n; 674545#L25 assume !(~n <= 0); 673561#L26 call #t~ret0 := fact(~n - 1);< 673880#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674804#factFINAL assume true; 674803#factEXIT >#70#return; 674248#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674559#$Ultimate##0 ~n := #in~n; 674557#L25 assume ~n <= 0;#res := 1; 673961#factFINAL assume true; 674202#factEXIT >#72#return; 674342#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675701#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 675699#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675696#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 674705#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673235#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 671872#$Ultimate##0 ~n := #in~n; 674179#L25 assume !(~n <= 0); 673573#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674548#factFINAL assume true; 673104#factEXIT >#74#return; 673278#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673755#$Ultimate##0 ~n := #in~n; 673754#L25 assume !(~n <= 0); 673568#L26 call #t~ret0 := fact(~n - 1);< 673599#$Ultimate##0 ~n := #in~n; 674139#L25 assume !(~n <= 0); 673581#L26 call #t~ret0 := fact(~n - 1);< 673614#$Ultimate##0 ~n := #in~n; 674391#L25 assume !(~n <= 0); 673607#L26 call #t~ret0 := fact(~n - 1);< 673768#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#76#return; 673545#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 674182#$Ultimate##0 ~n := #in~n; 674563#L25 assume !(~n <= 0); 673760#L26 call #t~ret0 := fact(~n - 1);< 673896#$Ultimate##0 ~n := #in~n; 674138#L25 assume ~n <= 0;#res := 1; 674555#factFINAL assume true; 673890#factEXIT >#66#return; 673889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673887#factFINAL assume true; 673839#factEXIT >#78#return; 673859#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675680#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675679#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675678#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675415#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673320#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674554#factFINAL assume true; 673885#factEXIT >#74#return; 673353#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673496#$Ultimate##0 ~n := #in~n; 673753#L25 assume !(~n <= 0); 673575#L26 call #t~ret0 := fact(~n - 1);< 673674#$Ultimate##0 ~n := #in~n; 674402#L25 assume !(~n <= 0); 673591#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673899#factFINAL assume true; 673898#factEXIT >#76#return; 673489#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 671878#$Ultimate##0 ~n := #in~n; 674560#L25 assume !(~n <= 0); 673608#L26 call #t~ret0 := fact(~n - 1);< 673632#$Ultimate##0 ~n := #in~n; 674547#L25 assume !(~n <= 0); 673762#L26 call #t~ret0 := fact(~n - 1);< 673882#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674196#factFINAL assume true; 674184#factEXIT >#78#return; 674188#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675413#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675412#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675411#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675410#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673336#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673676#factFINAL assume true; 673656#factEXIT >#66#return; 673671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674776#factFINAL assume true; 674551#factEXIT >#66#return; 674550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673504#factFINAL assume true; 673505#factEXIT >#74#return; 673407#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673496#$Ultimate##0 ~n := #in~n; 673753#L25 assume !(~n <= 0); 673575#L26 call #t~ret0 := fact(~n - 1);< 673674#$Ultimate##0 ~n := #in~n; 674402#L25 assume !(~n <= 0); 673591#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673899#factFINAL assume true; 673898#factEXIT >#76#return; 673443#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673492#$Ultimate##0 ~n := #in~n; 674564#L25 assume !(~n <= 0); 673563#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673610#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674399#factFINAL assume true; 674396#factEXIT >#78#return; 673554#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675408#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675403#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675402#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675148#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 673451#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 673886#$Ultimate##0 ~n := #in~n; 673968#L25 assume !(~n <= 0); 673664#L26 call #t~ret0 := fact(~n - 1);< 673908#$Ultimate##0 ~n := #in~n; 674540#L25 assume !(~n <= 0); 673572#L26 call #t~ret0 := fact(~n - 1);< 673775#$Ultimate##0 ~n := #in~n; 674173#L25 assume !(~n <= 0); 673577#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673901#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673875#factFINAL assume true; 673771#factEXIT >#66#return; 673757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673676#factFINAL assume true; 673656#factEXIT >#66#return; 673671#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 674776#factFINAL assume true; 674551#factEXIT >#66#return; 674550#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673504#factFINAL assume true; 673505#factEXIT >#74#return; 673469#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 673496#$Ultimate##0 ~n := #in~n; 673753#L25 assume !(~n <= 0); 673575#L26 call #t~ret0 := fact(~n - 1);< 673674#$Ultimate##0 ~n := #in~n; 674402#L25 assume !(~n <= 0); 673591#L26 call #t~ret0 := fact(~n - 1);< 673673#$Ultimate##0 ~n := #in~n; 674398#L25 assume !(~n <= 0); 673589#L26 call #t~ret0 := fact(~n - 1);< 673616#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673981#factFINAL assume true; 673971#factEXIT >#66#return; 673959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673910#factFINAL assume true; 673902#factEXIT >#66#return; 673900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673899#factFINAL assume true; 673898#factEXIT >#76#return; 673106#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 673492#$Ultimate##0 ~n := #in~n; 674564#L25 assume !(~n <= 0); 673563#L26 call #t~ret0 := fact(~n - 1);< 673897#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 674546#L25 assume !(~n <= 0); 673576#L26 call #t~ret0 := fact(~n - 1);< 673881#$Ultimate##0 ~n := #in~n; 673964#L25 assume ~n <= 0;#res := 1; 673962#factFINAL assume true; 673878#factEXIT >#66#return; 673877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673777#factFINAL assume true; 673758#factEXIT >#66#return; 673756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673615#factFINAL assume true; 673604#factEXIT >#66#return; 673603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673600#factFINAL assume true; 673560#factEXIT >#66#return; 673559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 673558#factFINAL assume true; 673508#factEXIT >#78#return; 673479#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 675137#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 675136#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 675135#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 675134#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 672891#L30-5 [2023-02-17 09:43:21,143 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:21,144 INFO L85 PathProgramCache]: Analyzing trace with hash -1261728297, now seen corresponding path program 47 times [2023-02-17 09:43:21,144 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:21,144 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2059164402] [2023-02-17 09:43:21,144 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:21,144 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:21,179 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:21,179 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [708272523] [2023-02-17 09:43:21,179 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:43:21,179 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:21,180 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:21,258 INFO L229 MonitoredProcess]: Starting monitored process 243 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:21,259 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (243)] Waiting until timeout for monitored process [2023-02-17 09:43:22,227 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 15 check-sat command(s) [2023-02-17 09:43:22,228 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:22,231 INFO L263 TraceCheckSpWp]: Trace formula consists of 235 conjuncts, 23 conjunts are in the unsatisfiable core [2023-02-17 09:43:22,239 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:22,318 INFO L134 CoverageAnalysis]: Checked inductivity of 240190 backedges. 90224 proven. 234 refuted. 0 times theorem prover too weak. 149732 trivial. 0 not checked. [2023-02-17 09:43:22,319 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:22,573 INFO L134 CoverageAnalysis]: Checked inductivity of 240190 backedges. 10448 proven. 3124 refuted. 0 times theorem prover too weak. 226618 trivial. 0 not checked. [2023-02-17 09:43:22,573 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:22,573 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2059164402] [2023-02-17 09:43:22,573 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:22,573 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [708272523] [2023-02-17 09:43:22,573 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [708272523] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:22,573 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:22,573 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 22] total 25 [2023-02-17 09:43:22,574 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1080199465] [2023-02-17 09:43:22,574 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:22,574 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:22,574 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:22,574 INFO L85 PathProgramCache]: Analyzing trace with hash 1076640924, now seen corresponding path program 41 times [2023-02-17 09:43:22,574 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:22,575 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1012451958] [2023-02-17 09:43:22,575 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:22,575 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:22,599 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:22,599 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [364602666] [2023-02-17 09:43:22,600 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:43:22,600 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:22,600 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:22,608 INFO L229 MonitoredProcess]: Starting monitored process 244 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:22,609 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (244)] Waiting until timeout for monitored process [2023-02-17 09:43:23,635 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 18 check-sat command(s) [2023-02-17 09:43:23,636 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:23,637 INFO L263 TraceCheckSpWp]: Trace formula consists of 161 conjuncts, 29 conjunts are in the unsatisfiable core [2023-02-17 09:43:23,642 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:23,741 INFO L134 CoverageAnalysis]: Checked inductivity of 76211 backedges. 28230 proven. 255 refuted. 0 times theorem prover too weak. 47726 trivial. 0 not checked. [2023-02-17 09:43:23,741 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:24,063 INFO L134 CoverageAnalysis]: Checked inductivity of 76211 backedges. 1470 proven. 7375 refuted. 0 times theorem prover too weak. 67366 trivial. 0 not checked. [2023-02-17 09:43:24,063 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:24,063 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1012451958] [2023-02-17 09:43:24,063 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:24,063 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [364602666] [2023-02-17 09:43:24,064 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [364602666] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:24,064 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:24,064 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 29] total 32 [2023-02-17 09:43:24,064 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2057173504] [2023-02-17 09:43:24,064 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:24,065 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:24,065 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:24,065 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 32 interpolants. [2023-02-17 09:43:24,066 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=147, Invalid=845, Unknown=0, NotChecked=0, Total=992 [2023-02-17 09:43:24,066 INFO L87 Difference]: Start difference. First operand 4059 states and 9507 transitions. cyclomatic complexity: 5491 Second operand has 32 states, 29 states have (on average 2.7241379310344827) internal successors, (79), 30 states have internal predecessors, (79), 18 states have call successors, (35), 2 states have call predecessors, (35), 14 states have return successors, (44), 15 states have call predecessors, (44), 18 states have call successors, (44) [2023-02-17 09:43:25,076 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:25,076 INFO L93 Difference]: Finished difference Result 4806 states and 10377 transitions. [2023-02-17 09:43:25,076 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4806 states and 10377 transitions. [2023-02-17 09:43:25,106 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 1067 [2023-02-17 09:43:25,146 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4806 states to 4803 states and 10374 transitions. [2023-02-17 09:43:25,146 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 813 [2023-02-17 09:43:25,147 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 813 [2023-02-17 09:43:25,147 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4803 states and 10374 transitions. [2023-02-17 09:43:25,147 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:25,147 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4803 states and 10374 transitions. [2023-02-17 09:43:25,149 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4803 states and 10374 transitions. [2023-02-17 09:43:25,219 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4803 to 4030. [2023-02-17 09:43:25,224 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4030 states, 2175 states have (on average 1.0441379310344827) internal successors, (2271), 2161 states have internal predecessors, (2271), 1603 states have call successors, (1640), 312 states have call predecessors, (1640), 252 states have return successors, (5499), 1556 states have call predecessors, (5499), 1603 states have call successors, (5499) [2023-02-17 09:43:25,241 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4030 states to 4030 states and 9410 transitions. [2023-02-17 09:43:25,241 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4030 states and 9410 transitions. [2023-02-17 09:43:25,242 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2023-02-17 09:43:25,242 INFO L428 stractBuchiCegarLoop]: Abstraction has 4030 states and 9410 transitions. [2023-02-17 09:43:25,242 INFO L335 stractBuchiCegarLoop]: ======== Iteration 71 ============ [2023-02-17 09:43:25,242 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4030 states and 9410 transitions. [2023-02-17 09:43:25,254 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 809 [2023-02-17 09:43:25,254 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:25,254 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:25,260 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [303, 303, 216, 216, 216, 216, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:25,260 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [169, 169, 139, 139, 139, 139, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:25,261 INFO L748 eck$LassoCheckResult]: Stem: 698536#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 698457#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 698458#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 698480#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 698537#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 699207#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699205#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699201#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 699202#$Ultimate##0 ~n := #in~n; 699206#L25 assume ~n <= 0;#res := 1; 699204#factFINAL assume true; 699200#factEXIT >#68#return; 699196#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 699197#$Ultimate##0 ~n := #in~n; 699203#L25 assume ~n <= 0;#res := 1; 699199#factFINAL assume true; 699195#factEXIT >#70#return; 699192#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699193#$Ultimate##0 ~n := #in~n; 699198#L25 assume ~n <= 0;#res := 1; 699194#factFINAL assume true; 699191#factEXIT >#72#return; 699190#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 699189#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 699188#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 699186#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699182#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699173#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 699174#$Ultimate##0 ~n := #in~n; 699185#L25 assume !(~n <= 0); 699177#L26 call #t~ret0 := fact(~n - 1);< 699179#$Ultimate##0 ~n := #in~n; 699187#L25 assume ~n <= 0;#res := 1; 699183#factFINAL assume true; 699175#factEXIT >#66#return; 699178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699181#factFINAL assume true; 699172#factEXIT >#74#return; 699168#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 699169#$Ultimate##0 ~n := #in~n; 699180#L25 assume ~n <= 0;#res := 1; 699171#factFINAL assume true; 699167#factEXIT >#76#return; 699162#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699163#$Ultimate##0 ~n := #in~n; 699184#L25 assume !(~n <= 0); 699176#L26 call #t~ret0 := fact(~n - 1);< 699179#$Ultimate##0 ~n := #in~n; 699187#L25 assume ~n <= 0;#res := 1; 699183#factFINAL assume true; 699175#factEXIT >#66#return; 699170#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699166#factFINAL assume true; 699161#factEXIT >#78#return; 699159#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 699158#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 699156#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 699153#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699150#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699079#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 699081#$Ultimate##0 ~n := #in~n; 699093#L25 assume !(~n <= 0); 699089#L26 call #t~ret0 := fact(~n - 1);< 699091#$Ultimate##0 ~n := #in~n; 699118#L25 assume !(~n <= 0); 699090#L26 call #t~ret0 := fact(~n - 1);< 699117#$Ultimate##0 ~n := #in~n; 699129#L25 assume ~n <= 0;#res := 1; 699125#factFINAL assume true; 699120#factEXIT >#66#return; 699119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699116#factFINAL assume true; 699110#factEXIT >#66#return; 699112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699148#factFINAL assume true; 699146#factEXIT >#74#return; 699098#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 699099#$Ultimate##0 ~n := #in~n; 699104#L25 assume ~n <= 0;#res := 1; 699103#factFINAL assume true; 699097#factEXIT >#76#return; 699095#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699096#$Ultimate##0 ~n := #in~n; 699115#L25 assume !(~n <= 0); 699111#L26 call #t~ret0 := fact(~n - 1);< 699114#$Ultimate##0 ~n := #in~n; 699124#L25 assume !(~n <= 0); 699121#L26 call #t~ret0 := fact(~n - 1);< 699122#$Ultimate##0 ~n := #in~n; 699129#L25 assume ~n <= 0;#res := 1; 699125#factFINAL assume true; 699120#factEXIT >#66#return; 699119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699116#factFINAL assume true; 699110#factEXIT >#66#return; 699109#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699107#factFINAL assume true; 699094#factEXIT >#78#return; 699092#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 699087#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 699085#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 699083#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699082#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699080#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 699081#$Ultimate##0 ~n := #in~n; 699093#L25 assume !(~n <= 0); 699089#L26 call #t~ret0 := fact(~n - 1);< 699091#$Ultimate##0 ~n := #in~n; 699118#L25 assume !(~n <= 0); 699090#L26 call #t~ret0 := fact(~n - 1);< 699117#$Ultimate##0 ~n := #in~n; 699118#L25 assume !(~n <= 0); 699090#L26 call #t~ret0 := fact(~n - 1);< 699117#$Ultimate##0 ~n := #in~n; 699129#L25 assume ~n <= 0;#res := 1; 699125#factFINAL assume true; 699120#factEXIT >#66#return; 699119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699116#factFINAL assume true; 699110#factEXIT >#66#return; 699113#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699123#factFINAL assume true; 699088#factEXIT >#66#return; 699086#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699084#factFINAL assume true; 699078#factEXIT >#74#return; 699076#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 699077#$Ultimate##0 ~n := #in~n; 699108#L25 assume ~n <= 0;#res := 1; 699106#factFINAL assume true; 699075#factEXIT >#76#return; 699073#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699074#$Ultimate##0 ~n := #in~n; 699141#L25 assume !(~n <= 0); 699132#L26 call #t~ret0 := fact(~n - 1);< 699138#$Ultimate##0 ~n := #in~n; 699165#L25 assume !(~n <= 0); 699131#L26 call #t~ret0 := fact(~n - 1);< 699136#$Ultimate##0 ~n := #in~n; 699155#L25 assume !(~n <= 0); 699133#L26 call #t~ret0 := fact(~n - 1);< 699152#$Ultimate##0 ~n := #in~n; 699157#L25 assume ~n <= 0;#res := 1; 699154#factFINAL assume true; 699151#factEXIT >#66#return; 699149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699147#factFINAL assume true; 699145#factEXIT >#66#return; 699144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699143#factFINAL assume true; 699142#factEXIT >#66#return; 699135#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699160#factFINAL assume true; 699072#factEXIT >#78#return; 699071#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 699069#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 699067#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 699065#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699064#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699059#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 699060#$Ultimate##0 ~n := #in~n; 699139#L25 assume !(~n <= 0); 699134#L26 call #t~ret0 := fact(~n - 1);< 699136#$Ultimate##0 ~n := #in~n; 699155#L25 assume !(~n <= 0); 699133#L26 call #t~ret0 := fact(~n - 1);< 699152#$Ultimate##0 ~n := #in~n; 699155#L25 assume !(~n <= 0); 699133#L26 call #t~ret0 := fact(~n - 1);< 699152#$Ultimate##0 ~n := #in~n; 699155#L25 assume !(~n <= 0); 699133#L26 call #t~ret0 := fact(~n - 1);< 699152#$Ultimate##0 ~n := #in~n; 699157#L25 assume ~n <= 0;#res := 1; 699154#factFINAL assume true; 699151#factEXIT >#66#return; 699149#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699147#factFINAL assume true; 699145#factEXIT >#66#return; 699144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699143#factFINAL assume true; 699142#factEXIT >#66#return; 699140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699137#factFINAL assume true; 699130#factEXIT >#66#return; 699128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699063#factFINAL assume true; 699058#factEXIT >#74#return; 699047#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 699048#$Ultimate##0 ~n := #in~n; 699051#L25 assume ~n <= 0;#res := 1; 699050#factFINAL assume true; 699046#factEXIT >#76#return; 699039#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699043#$Ultimate##0 ~n := #in~n; 699041#L25 assume !(~n <= 0); 699007#L26 call #t~ret0 := fact(~n - 1);< 699040#$Ultimate##0 ~n := #in~n; 699100#L25 assume !(~n <= 0); 699005#L26 call #t~ret0 := fact(~n - 1);< 699045#$Ultimate##0 ~n := #in~n; 699070#L25 assume !(~n <= 0); 699009#L26 call #t~ret0 := fact(~n - 1);< 699062#$Ultimate##0 ~n := #in~n; 699070#L25 assume !(~n <= 0); 699009#L26 call #t~ret0 := fact(~n - 1);< 699062#$Ultimate##0 ~n := #in~n; 699068#L25 assume ~n <= 0;#res := 1; 699066#factFINAL assume true; 699061#factEXIT >#66#return; 699057#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699056#factFINAL assume true; 699055#factEXIT >#66#return; 699053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699052#factFINAL assume true; 699044#factEXIT >#66#return; 699042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699038#factFINAL assume true; 699029#factEXIT >#66#return; 699030#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699226#factFINAL assume true; 699224#factEXIT >#78#return; 699225#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 699357#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 699354#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 699352#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699351#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 698721#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698722#$Ultimate##0 ~n := #in~n; 698743#L25 assume !(~n <= 0); 698739#L26 call #t~ret0 := fact(~n - 1);< 698740#$Ultimate##0 ~n := #in~n; 698755#L25 assume !(~n <= 0); 698751#L26 call #t~ret0 := fact(~n - 1);< 698752#$Ultimate##0 ~n := #in~n; 698768#L25 assume !(~n <= 0); 698763#L26 call #t~ret0 := fact(~n - 1);< 698765#$Ultimate##0 ~n := #in~n; 698780#L25 assume !(~n <= 0); 698764#L26 call #t~ret0 := fact(~n - 1);< 698777#$Ultimate##0 ~n := #in~n; 698780#L25 assume !(~n <= 0); 698764#L26 call #t~ret0 := fact(~n - 1);< 698777#$Ultimate##0 ~n := #in~n; 698790#L25 assume ~n <= 0;#res := 1; 698788#factFINAL assume true; 698786#factEXIT >#66#return; 698783#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698779#factFINAL assume true; 698776#factEXIT >#66#return; 698773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698767#factFINAL assume true; 698762#factEXIT >#66#return; 698759#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698754#factFINAL assume true; 698750#factEXIT >#66#return; 698747#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698742#factFINAL assume true; 698738#factEXIT >#66#return; 698733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698726#factFINAL assume true; 698720#factEXIT >#74#return; 698718#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698719#$Ultimate##0 ~n := #in~n; 698798#L25 assume ~n <= 0;#res := 1; 698796#factFINAL assume true; 698717#factEXIT >#76#return; 698709#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 698713#$Ultimate##0 ~n := #in~n; 698710#L25 assume !(~n <= 0); 698679#L26 call #t~ret0 := fact(~n - 1);< 698707#$Ultimate##0 ~n := #in~n; 698814#L25 assume !(~n <= 0); 698675#L26 call #t~ret0 := fact(~n - 1);< 698716#$Ultimate##0 ~n := #in~n; 698837#L25 assume !(~n <= 0); 698678#L26 call #t~ret0 := fact(~n - 1);< 698802#$Ultimate##0 ~n := #in~n; 698843#L25 assume !(~n <= 0); 698677#L26 call #t~ret0 := fact(~n - 1);< 698702#$Ultimate##0 ~n := #in~n; 698844#L25 assume !(~n <= 0); 698683#L26 call #t~ret0 := fact(~n - 1);< 698839#$Ultimate##0 ~n := #in~n; 698845#L25 assume ~n <= 0;#res := 1; 698842#factFINAL assume true; 698838#factEXIT >#66#return; 698832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698829#factFINAL assume true; 698822#factEXIT >#66#return; 698818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698816#factFINAL assume true; 698801#factEXIT >#66#return; 698800#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698793#factFINAL assume true; 698715#factEXIT >#66#return; 698712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698708#factFINAL assume true; 698706#factEXIT >#66#return; 698689#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 698878#factFINAL assume true; 698875#factEXIT >#78#return; 698656#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 698655#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 698654#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 698653#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 698652#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 698651#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 698650#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 698649#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 698607#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698644#$Ultimate##0 ~n := #in~n; 698648#L25 assume !(~n <= 0); 699494#L26 call #t~ret0 := fact(~n - 1);< 699495#$Ultimate##0 ~n := #in~n; 699497#L25 assume ~n <= 0;#res := 1; 699496#factFINAL assume true; 699493#factEXIT >#66#return; 699492#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699491#factFINAL assume true; 699490#factEXIT >#68#return; 698592#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698646#$Ultimate##0 ~n := #in~n; 698647#L25 assume ~n <= 0;#res := 1; 698645#factFINAL assume true; 698590#factEXIT >#70#return; 698626#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699489#$Ultimate##0 ~n := #in~n; 699488#L25 assume !(~n <= 0); 698468#L26 call #t~ret0 := fact(~n - 1);< 699486#$Ultimate##0 ~n := #in~n; 699480#L25 assume ~n <= 0;#res := 1; 698574#factFINAL assume true; 698575#factEXIT >#66#return; 699479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701211#factFINAL assume true; 701209#factEXIT >#72#return; 701208#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701207#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 701205#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701204#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701203#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700796#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698527#$Ultimate##0 ~n := #in~n; 701314#L25 assume !(~n <= 0); 700293#L26 call #t~ret0 := fact(~n - 1);< 701039#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701075#factFINAL assume true; 700717#factEXIT >#68#return; 700797#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700981#$Ultimate##0 ~n := #in~n; 701087#L25 assume !(~n <= 0); 700299#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701075#factFINAL assume true; 700717#factEXIT >#70#return; 700645#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700716#$Ultimate##0 ~n := #in~n; 701074#L25 assume ~n <= 0;#res := 1; 701073#factFINAL assume true; 700503#factEXIT >#72#return; 700461#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 700458#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 700459#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701092#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701091#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700170#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 700205#$Ultimate##0 ~n := #in~n; 701067#L25 assume !(~n <= 0); 700300#L26 call #t~ret0 := fact(~n - 1);< 701039#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#74#return; 700267#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700289#$Ultimate##0 ~n := #in~n; 701289#L25 assume !(~n <= 0); 700302#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#76#return; 700249#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700289#$Ultimate##0 ~n := #in~n; 701289#L25 assume !(~n <= 0); 700302#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#78#return; 700285#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 700457#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 700456#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 700455#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 700454#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700409#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 700449#$Ultimate##0 ~n := #in~n; 701386#L25 assume !(~n <= 0); 700485#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701014#factFINAL assume true; 700447#factEXIT >#74#return; 700222#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700289#$Ultimate##0 ~n := #in~n; 701289#L25 assume !(~n <= 0); 700302#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#76#return; 700224#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701013#$Ultimate##0 ~n := #in~n; 701280#L25 assume !(~n <= 0); 698517#L26 call #t~ret0 := fact(~n - 1);< 701170#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#78#return; 701000#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 700999#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 700500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 700466#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 700464#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700430#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 700449#$Ultimate##0 ~n := #in~n; 701386#L25 assume !(~n <= 0); 700485#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#74#return; 700231#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700289#$Ultimate##0 ~n := #in~n; 701289#L25 assume !(~n <= 0); 700302#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#76#return; 700278#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700453#$Ultimate##0 ~n := #in~n; 701671#L25 assume !(~n <= 0); 700477#L26 call #t~ret0 := fact(~n - 1);< 700498#$Ultimate##0 ~n := #in~n; 701682#L25 assume !(~n <= 0); 701080#L26 call #t~ret0 := fact(~n - 1);< 701124#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701014#factFINAL assume true; 700447#factEXIT >#78#return; 700448#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701206#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 701017#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 700982#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 700462#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700100#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701023#factFINAL assume true; 701022#factEXIT >#74#return; 700246#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700289#$Ultimate##0 ~n := #in~n; 701289#L25 assume !(~n <= 0); 700302#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#76#return; 700280#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700453#$Ultimate##0 ~n := #in~n; 701671#L25 assume !(~n <= 0); 700477#L26 call #t~ret0 := fact(~n - 1);< 700498#$Ultimate##0 ~n := #in~n; 701682#L25 assume !(~n <= 0); 701080#L26 call #t~ret0 := fact(~n - 1);< 701124#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#78#return; 699864#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 699862#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 699860#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 699856#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699819#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699714#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698413#$Ultimate##0 ~n := #in~n; 699847#L25 assume !(~n <= 0); 699802#L26 call #t~ret0 := fact(~n - 1);< 699844#$Ultimate##0 ~n := #in~n; 699851#L25 assume !(~n <= 0); 699763#L26 call #t~ret0 := fact(~n - 1);< 699841#$Ultimate##0 ~n := #in~n; 700208#L25 assume !(~n <= 0); 699756#L26 call #t~ret0 := fact(~n - 1);< 699764#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699769#factFINAL assume true; 699766#factEXIT >#66#return; 699765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699762#factFINAL assume true; 699749#factEXIT >#66#return; 699760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699850#factFINAL assume true; 699848#factEXIT >#66#return; 699846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699843#factFINAL assume true; 699839#factEXIT >#66#return; 699840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699855#factFINAL assume true; 699853#factEXIT >#74#return; 699796#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698532#$Ultimate##0 ~n := #in~n; 699836#L25 assume !(~n <= 0); 699815#L26 call #t~ret0 := fact(~n - 1);< 699816#$Ultimate##0 ~n := #in~n; 699826#L25 assume ~n <= 0;#res := 1; 699825#factFINAL assume true; 699814#factEXIT >#66#return; 699811#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699809#factFINAL assume true; 699795#factEXIT >#76#return; 699725#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 698539#$Ultimate##0 ~n := #in~n; 699833#L25 assume !(~n <= 0); 699751#L26 call #t~ret0 := fact(~n - 1);< 699770#$Ultimate##0 ~n := #in~n; 699777#L25 assume !(~n <= 0); 699755#L26 call #t~ret0 := fact(~n - 1);< 699764#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699769#factFINAL assume true; 699766#factEXIT >#66#return; 699765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699762#factFINAL assume true; 699749#factEXIT >#66#return; 699760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699850#factFINAL assume true; 699848#factEXIT >#66#return; 699846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699843#factFINAL assume true; 699839#factEXIT >#66#return; 699840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699855#factFINAL assume true; 699853#factEXIT >#78#return; 699631#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 699629#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 699627#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 699625#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 699622#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 699517#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 699502#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 699485#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 698452#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698453#$Ultimate##0 ~n := #in~n; 699607#L25 assume !(~n <= 0); 699511#L26 call #t~ret0 := fact(~n - 1);< 699604#$Ultimate##0 ~n := #in~n; 699498#L25 assume !(~n <= 0); 699505#L26 call #t~ret0 := fact(~n - 1);< 699609#$Ultimate##0 ~n := #in~n; 699620#L25 assume ~n <= 0;#res := 1; 699611#factFINAL assume true; 699608#factEXIT >#66#return; 699605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699603#factFINAL assume true; 699600#factEXIT >#66#return; 699601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701410#factFINAL assume true; 701408#factEXIT >#68#return; 698601#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698646#$Ultimate##0 ~n := #in~n; 698647#L25 assume ~n <= 0;#res := 1; 698645#factFINAL assume true; 698590#factEXIT >#70#return; 698571#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 698553#$Ultimate##0 ~n := #in~n; 698573#L25 assume !(~n <= 0); 698467#L26 call #t~ret0 := fact(~n - 1);< 698572#$Ultimate##0 ~n := #in~n; 699487#L25 assume !(~n <= 0); 698463#L26 call #t~ret0 := fact(~n - 1);< 698466#$Ultimate##0 ~n := #in~n; 698528#L25 assume ~n <= 0;#res := 1; 701210#factFINAL assume true; 701018#factEXIT >#66#return; 699481#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699484#factFINAL assume true; 699591#factEXIT >#66#return; 699592#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701406#factFINAL assume true; 701399#factEXIT >#72#return; 701397#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701398#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 701393#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701394#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701390#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 701195#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701345#$Ultimate##0 ~n := #in~n; 701354#L25 assume !(~n <= 0); 700489#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701409#factFINAL assume true; 701407#factEXIT >#68#return; 700772#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 701287#$Ultimate##0 ~n := #in~n; 701285#L25 assume !(~n <= 0); 700301#L26 call #t~ret0 := fact(~n - 1);< 701077#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700305#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701075#factFINAL assume true; 700717#factEXIT >#70#return; 700321#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701331#$Ultimate##0 ~n := #in~n; 701550#L25 assume !(~n <= 0); 700294#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701380#factFINAL assume true; 701366#factEXIT >#72#return; 701367#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701395#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 701396#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701391#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701392#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 701193#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701345#$Ultimate##0 ~n := #in~n; 701354#L25 assume !(~n <= 0); 700489#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701409#factFINAL assume true; 701407#factEXIT >#68#return; 700795#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 701287#$Ultimate##0 ~n := #in~n; 701285#L25 assume !(~n <= 0); 700301#L26 call #t~ret0 := fact(~n - 1);< 701077#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701409#factFINAL assume true; 701407#factEXIT >#70#return; 700332#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701331#$Ultimate##0 ~n := #in~n; 701550#L25 assume ~n <= 0;#res := 1; 701073#factFINAL assume true; 700503#factEXIT >#72#return; 700673#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701908#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 701907#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701906#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701905#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700386#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 700449#$Ultimate##0 ~n := #in~n; 701386#L25 assume !(~n <= 0); 700485#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701014#factFINAL assume true; 700447#factEXIT >#74#return; 700387#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698534#$Ultimate##0 ~n := #in~n; 701201#L25 assume !(~n <= 0); 700473#L26 call #t~ret0 := fact(~n - 1);< 701123#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#76#return; 700247#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701013#$Ultimate##0 ~n := #in~n; 701280#L25 assume !(~n <= 0); 698517#L26 call #t~ret0 := fact(~n - 1);< 701170#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#78#return; 700282#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701904#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 701903#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701902#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701901#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700389#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 700449#$Ultimate##0 ~n := #in~n; 701386#L25 assume !(~n <= 0); 700485#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#74#return; 700388#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698534#$Ultimate##0 ~n := #in~n; 701201#L25 assume !(~n <= 0); 700473#L26 call #t~ret0 := fact(~n - 1);< 701123#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#76#return; 700245#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701013#$Ultimate##0 ~n := #in~n; 701280#L25 assume !(~n <= 0); 698517#L26 call #t~ret0 := fact(~n - 1);< 701170#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#78#return; 701009#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702193#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702192#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702191#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702190#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700026#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701023#factFINAL assume true; 701022#factEXIT >#74#return; 700390#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698534#$Ultimate##0 ~n := #in~n; 701201#L25 assume !(~n <= 0); 700473#L26 call #t~ret0 := fact(~n - 1);< 701123#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#76#return; 700391#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700453#$Ultimate##0 ~n := #in~n; 701671#L25 assume !(~n <= 0); 700477#L26 call #t~ret0 := fact(~n - 1);< 700498#$Ultimate##0 ~n := #in~n; 701682#L25 assume !(~n <= 0); 701080#L26 call #t~ret0 := fact(~n - 1);< 701124#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#78#return; 700442#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702189#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702188#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702187#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702186#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700040#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701023#factFINAL assume true; 701022#factEXIT >#74#return; 700393#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698534#$Ultimate##0 ~n := #in~n; 701201#L25 assume !(~n <= 0); 700473#L26 call #t~ret0 := fact(~n - 1);< 701123#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#76#return; 700397#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700453#$Ultimate##0 ~n := #in~n; 701671#L25 assume !(~n <= 0); 700477#L26 call #t~ret0 := fact(~n - 1);< 700498#$Ultimate##0 ~n := #in~n; 701682#L25 assume !(~n <= 0); 701080#L26 call #t~ret0 := fact(~n - 1);< 701124#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#78#return; 700187#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702179#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702171#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702170#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702144#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699717#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698413#$Ultimate##0 ~n := #in~n; 699847#L25 assume !(~n <= 0); 699802#L26 call #t~ret0 := fact(~n - 1);< 699844#$Ultimate##0 ~n := #in~n; 699851#L25 assume !(~n <= 0); 699763#L26 call #t~ret0 := fact(~n - 1);< 699841#$Ultimate##0 ~n := #in~n; 700208#L25 assume !(~n <= 0); 699756#L26 call #t~ret0 := fact(~n - 1);< 699764#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699769#factFINAL assume true; 699766#factEXIT >#66#return; 699765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699762#factFINAL assume true; 699749#factEXIT >#66#return; 699760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699850#factFINAL assume true; 699848#factEXIT >#66#return; 699846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699843#factFINAL assume true; 699839#factEXIT >#66#return; 699837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699834#factFINAL assume true; 699831#factEXIT >#66#return; 699827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699817#factFINAL assume true; 699797#factEXIT >#66#return; 699793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699790#factFINAL assume true; 699787#factEXIT >#74#return; 699731#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 699773#$Ultimate##0 ~n := #in~n; 699772#L25 assume !(~n <= 0); 699754#L26 call #t~ret0 := fact(~n - 1);< 699786#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699781#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701804#factFINAL assume true; 701803#factEXIT >#76#return; 699642#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699828#$Ultimate##0 ~n := #in~n; 699824#L25 assume !(~n <= 0); 699803#L26 call #t~ret0 := fact(~n - 1);< 699812#$Ultimate##0 ~n := #in~n; 699810#L25 assume !(~n <= 0); 699759#L26 call #t~ret0 := fact(~n - 1);< 699794#$Ultimate##0 ~n := #in~n; 699791#L25 assume !(~n <= 0); 699757#L26 call #t~ret0 := fact(~n - 1);< 699768#$Ultimate##0 ~n := #in~n; 699777#L25 assume !(~n <= 0); 699755#L26 call #t~ret0 := fact(~n - 1);< 699764#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699769#factFINAL assume true; 699766#factEXIT >#66#return; 699765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699762#factFINAL assume true; 699749#factEXIT >#66#return; 699760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699850#factFINAL assume true; 699848#factEXIT >#66#return; 699846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699843#factFINAL assume true; 699839#factEXIT >#66#return; 699840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699855#factFINAL assume true; 699853#factEXIT >#78#return; 699737#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702136#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702135#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702134#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 702133#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 702132#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 702131#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702035#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699470#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698453#$Ultimate##0 ~n := #in~n; 699607#L25 assume !(~n <= 0); 699511#L26 call #t~ret0 := fact(~n - 1);< 699604#$Ultimate##0 ~n := #in~n; 699498#L25 assume !(~n <= 0); 699505#L26 call #t~ret0 := fact(~n - 1);< 699609#$Ultimate##0 ~n := #in~n; 699620#L25 assume ~n <= 0;#res := 1; 699611#factFINAL assume true; 699608#factEXIT >#66#return; 699605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699603#factFINAL assume true; 699600#factEXIT >#66#return; 699601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701410#factFINAL assume true; 701408#factEXIT >#68#return; 698611#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698646#$Ultimate##0 ~n := #in~n; 698647#L25 assume ~n <= 0;#res := 1; 698645#factFINAL assume true; 698590#factEXIT >#70#return; 698566#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 698552#$Ultimate##0 ~n := #in~n; 701653#L25 assume !(~n <= 0); 698473#L26 call #t~ret0 := fact(~n - 1);< 701640#$Ultimate##0 ~n := #in~n; 701695#L25 assume !(~n <= 0); 698469#L26 call #t~ret0 := fact(~n - 1);< 698472#$Ultimate##0 ~n := #in~n; 701658#L25 assume ~n <= 0;#res := 1; 701657#factFINAL assume true; 701654#factEXIT >#66#return; 701652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701651#factFINAL assume true; 701637#factEXIT >#66#return; 701638#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701694#factFINAL assume true; 701688#factEXIT >#72#return; 701689#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702089#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702088#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702087#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702086#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 698430#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701607#$Ultimate##0 ~n := #in~n; 701536#L25 assume !(~n <= 0); 701424#L26 call #t~ret0 := fact(~n - 1);< 701576#$Ultimate##0 ~n := #in~n; 701593#L25 assume !(~n <= 0); 701427#L26 call #t~ret0 := fact(~n - 1);< 701583#$Ultimate##0 ~n := #in~n; 701592#L25 assume ~n <= 0;#res := 1; 701587#factFINAL assume true; 701582#factEXIT >#66#return; 701580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701579#factFINAL assume true; 701574#factEXIT >#66#return; 701575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701774#factFINAL assume true; 701764#factEXIT >#68#return; 698513#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698525#$Ultimate##0 ~n := #in~n; 698489#L25 assume ~n <= 0;#res := 1; 698515#factFINAL assume true; 701414#factEXIT >#70#return; 701175#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701353#$Ultimate##0 ~n := #in~n; 701348#L25 assume !(~n <= 0); 698522#L26 call #t~ret0 := fact(~n - 1);< 701125#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701763#factFINAL assume true; 701760#factEXIT >#72#return; 701762#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702085#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702084#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702083#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702081#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 701177#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701345#$Ultimate##0 ~n := #in~n; 701354#L25 assume !(~n <= 0); 700489#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701609#factFINAL assume true; 701551#factEXIT >#68#return; 700886#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 701287#$Ultimate##0 ~n := #in~n; 701285#L25 assume !(~n <= 0); 700301#L26 call #t~ret0 := fact(~n - 1);< 701077#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701409#factFINAL assume true; 701407#factEXIT >#70#return; 700613#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701381#$Ultimate##0 ~n := #in~n; 701673#L25 assume ~n <= 0;#res := 1; 701073#factFINAL assume true; 700503#factEXIT >#72#return; 700699#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702080#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702078#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702076#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702074#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 701251#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701282#$Ultimate##0 ~n := #in~n; 701281#L25 assume !(~n <= 0); 700493#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701037#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701989#factFINAL assume true; 701350#factEXIT >#68#return; 700730#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 701287#$Ultimate##0 ~n := #in~n; 701285#L25 assume !(~n <= 0); 700301#L26 call #t~ret0 := fact(~n - 1);< 701077#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 701675#L25 assume !(~n <= 0); 701079#L26 call #t~ret0 := fact(~n - 1);< 701320#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701609#factFINAL assume true; 701551#factEXIT >#70#return; 700510#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701352#$Ultimate##0 ~n := #in~n; 701351#L25 assume ~n <= 0;#res := 1; 701073#factFINAL assume true; 700503#factEXIT >#72#return; 700656#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702307#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702306#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702305#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701568#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699963#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 700451#$Ultimate##0 ~n := #in~n; 701388#L25 assume !(~n <= 0); 700483#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#74#return; 700395#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 701024#$Ultimate##0 ~n := #in~n; 701291#L25 assume !(~n <= 0); 700475#L26 call #t~ret0 := fact(~n - 1);< 701090#$Ultimate##0 ~n := #in~n; 701479#L25 assume !(~n <= 0); 700476#L26 call #t~ret0 := fact(~n - 1);< 701126#$Ultimate##0 ~n := #in~n; 701675#L25 assume !(~n <= 0); 701079#L26 call #t~ret0 := fact(~n - 1);< 701320#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#76#return; 700264#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700289#$Ultimate##0 ~n := #in~n; 701289#L25 assume !(~n <= 0); 700302#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#78#return; 700284#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701548#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 701546#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701547#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701541#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700086#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701023#factFINAL assume true; 701022#factEXIT >#74#return; 700418#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700452#$Ultimate##0 ~n := #in~n; 702244#L25 assume !(~n <= 0); 700484#L26 call #t~ret0 := fact(~n - 1);< 701038#$Ultimate##0 ~n := #in~n; 701200#L25 assume !(~n <= 0); 700486#L26 call #t~ret0 := fact(~n - 1);< 700498#$Ultimate##0 ~n := #in~n; 701682#L25 assume !(~n <= 0); 701080#L26 call #t~ret0 := fact(~n - 1);< 701124#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#76#return; 700238#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701013#$Ultimate##0 ~n := #in~n; 701280#L25 assume !(~n <= 0); 698517#L26 call #t~ret0 := fact(~n - 1);< 701170#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#78#return; 701003#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701661#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 701662#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701616#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701617#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700137#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701304#factFINAL assume true; 701297#factEXIT >#66#return; 701296#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701294#factFINAL assume true; 701127#factEXIT >#66#return; 701107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701093#factFINAL assume true; 699865#factEXIT >#74#return; 700176#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700212#$Ultimate##0 ~n := #in~n; 701168#L25 assume !(~n <= 0); 700482#L26 call #t~ret0 := fact(~n - 1);< 701058#$Ultimate##0 ~n := #in~n; 701343#L25 assume !(~n <= 0); 700480#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701088#factFINAL assume true; 701001#factEXIT >#76#return; 699875#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700205#$Ultimate##0 ~n := #in~n; 701067#L25 assume !(~n <= 0); 700300#L26 call #t~ret0 := fact(~n - 1);< 701039#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#78#return; 700434#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702331#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702330#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702329#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702328#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699897#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701304#factFINAL assume true; 701297#factEXIT >#66#return; 701296#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701294#factFINAL assume true; 701127#factEXIT >#66#return; 701107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701093#factFINAL assume true; 699865#factEXIT >#74#return; 699926#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700212#$Ultimate##0 ~n := #in~n; 701168#L25 assume !(~n <= 0); 700482#L26 call #t~ret0 := fact(~n - 1);< 701058#$Ultimate##0 ~n := #in~n; 701343#L25 assume !(~n <= 0); 700480#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701088#factFINAL assume true; 701001#factEXIT >#76#return; 699927#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700205#$Ultimate##0 ~n := #in~n; 701067#L25 assume !(~n <= 0); 700300#L26 call #t~ret0 := fact(~n - 1);< 701039#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#78#return; 700190#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702339#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702338#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 698542#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 698543#L30-5 [2023-02-17 09:43:25,261 INFO L750 eck$LassoCheckResult]: Loop: 698543#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698413#$Ultimate##0 ~n := #in~n; 699847#L25 assume !(~n <= 0); 699802#L26 call #t~ret0 := fact(~n - 1);< 699844#$Ultimate##0 ~n := #in~n; 699851#L25 assume !(~n <= 0); 699763#L26 call #t~ret0 := fact(~n - 1);< 699841#$Ultimate##0 ~n := #in~n; 700208#L25 assume !(~n <= 0); 699756#L26 call #t~ret0 := fact(~n - 1);< 699764#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699769#factFINAL assume true; 699766#factEXIT >#66#return; 699765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699762#factFINAL assume true; 699749#factEXIT >#66#return; 699760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699850#factFINAL assume true; 699848#factEXIT >#66#return; 699846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699843#factFINAL assume true; 699839#factEXIT >#66#return; 699837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699834#factFINAL assume true; 699831#factEXIT >#66#return; 699827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699817#factFINAL assume true; 699797#factEXIT >#66#return; 699805#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700211#factFINAL assume true; 700210#factEXIT >#66#return; 700209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699858#factFINAL assume true; 699774#factEXIT >#74#return; 699678#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 699746#$Ultimate##0 ~n := #in~n; 699779#L25 assume !(~n <= 0); 699753#L26 call #t~ret0 := fact(~n - 1);< 699761#$Ultimate##0 ~n := #in~n; 699791#L25 assume !(~n <= 0); 699757#L26 call #t~ret0 := fact(~n - 1);< 699768#$Ultimate##0 ~n := #in~n; 699777#L25 assume !(~n <= 0); 699755#L26 call #t~ret0 := fact(~n - 1);< 699764#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699769#factFINAL assume true; 699766#factEXIT >#66#return; 699765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699762#factFINAL assume true; 699749#factEXIT >#66#return; 699760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699850#factFINAL assume true; 699848#factEXIT >#66#return; 699846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699843#factFINAL assume true; 699839#factEXIT >#66#return; 699837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699834#factFINAL assume true; 699831#factEXIT >#66#return; 699827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699817#factFINAL assume true; 699797#factEXIT >#66#return; 699793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699790#factFINAL assume true; 699787#factEXIT >#76#return; 699689#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699744#$Ultimate##0 ~n := #in~n; 699830#L25 assume !(~n <= 0); 699752#L26 call #t~ret0 := fact(~n - 1);< 699829#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699823#L25 assume !(~n <= 0); 699758#L26 call #t~ret0 := fact(~n - 1);< 699808#$Ultimate##0 ~n := #in~n; 699822#L25 assume ~n <= 0;#res := 1; 699821#factFINAL assume true; 699807#factEXIT >#66#return; 699792#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699785#factFINAL assume true; 699780#factEXIT >#66#return; 699771#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699769#factFINAL assume true; 699766#factEXIT >#66#return; 699765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699762#factFINAL assume true; 699749#factEXIT >#66#return; 699760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699850#factFINAL assume true; 699848#factEXIT >#66#return; 699846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699843#factFINAL assume true; 699839#factEXIT >#66#return; 699837#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699834#factFINAL assume true; 699831#factEXIT >#66#return; 699827#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699817#factFINAL assume true; 699797#factEXIT >#66#return; 699793#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699790#factFINAL assume true; 699787#factEXIT >#78#return; 699735#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702304#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702297#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702296#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 702295#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 702230#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 700213#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 700214#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699468#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 699610#$Ultimate##0 ~n := #in~n; 699606#L25 assume !(~n <= 0); 699509#L26 call #t~ret0 := fact(~n - 1);< 699546#$Ultimate##0 ~n := #in~n; 699612#L25 assume !(~n <= 0); 699513#L26 call #t~ret0 := fact(~n - 1);< 699602#$Ultimate##0 ~n := #in~n; 699498#L25 assume !(~n <= 0); 699505#L26 call #t~ret0 := fact(~n - 1);< 699609#$Ultimate##0 ~n := #in~n; 699620#L25 assume ~n <= 0;#res := 1; 699611#factFINAL assume true; 699608#factEXIT >#66#return; 699605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699603#factFINAL assume true; 699600#factEXIT >#66#return; 699597#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 699595#factFINAL assume true; 699589#factEXIT >#66#return; 699579#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701868#factFINAL assume true; 701861#factEXIT >#68#return; 698619#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698646#$Ultimate##0 ~n := #in~n; 698647#L25 assume ~n <= 0;#res := 1; 698645#factFINAL assume true; 698590#factEXIT >#70#return; 698640#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 699575#$Ultimate##0 ~n := #in~n; 701643#L25 assume !(~n <= 0); 701601#L26 call #t~ret0 := fact(~n - 1);< 701626#$Ultimate##0 ~n := #in~n; 701646#L25 assume !(~n <= 0); 701621#L26 call #t~ret0 := fact(~n - 1);< 701634#$Ultimate##0 ~n := #in~n; 701645#L25 assume !(~n <= 0); 701631#L26 call #t~ret0 := fact(~n - 1);< 701639#$Ultimate##0 ~n := #in~n; 701658#L25 assume ~n <= 0;#res := 1; 701657#factFINAL assume true; 701654#factEXIT >#66#return; 701652#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701651#factFINAL assume true; 701637#factEXIT >#66#return; 701636#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701635#factFINAL assume true; 701629#factEXIT >#66#return; 701622#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 702386#factFINAL assume true; 702382#factEXIT >#72#return; 698446#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702380#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702378#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702373#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702369#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 698423#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698454#$Ultimate##0 ~n := #in~n; 701537#L25 assume !(~n <= 0); 701425#L26 call #t~ret0 := fact(~n - 1);< 701437#$Ultimate##0 ~n := #in~n; 701618#L25 assume !(~n <= 0); 701420#L26 call #t~ret0 := fact(~n - 1);< 701576#$Ultimate##0 ~n := #in~n; 701593#L25 assume !(~n <= 0); 701427#L26 call #t~ret0 := fact(~n - 1);< 701583#$Ultimate##0 ~n := #in~n; 701593#L25 assume !(~n <= 0); 701427#L26 call #t~ret0 := fact(~n - 1);< 701583#$Ultimate##0 ~n := #in~n; 701593#L25 assume !(~n <= 0); 701427#L26 call #t~ret0 := fact(~n - 1);< 701583#$Ultimate##0 ~n := #in~n; 701593#L25 assume !(~n <= 0); 701427#L26 call #t~ret0 := fact(~n - 1);< 701583#$Ultimate##0 ~n := #in~n; 701592#L25 assume ~n <= 0;#res := 1; 701587#factFINAL assume true; 701582#factEXIT >#66#return; 701580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701579#factFINAL assume true; 701574#factEXIT >#66#return; 701573#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701572#factFINAL assume true; 701466#factEXIT >#66#return; 701460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701458#factFINAL assume true; 701455#factEXIT >#66#return; 701453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701451#factFINAL assume true; 701447#factEXIT >#66#return; 701445#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701444#factFINAL assume true; 701440#factEXIT >#66#return; 701441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 702366#factFINAL assume true; 702363#factEXIT >#68#return; 698504#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698525#$Ultimate##0 ~n := #in~n; 698489#L25 assume ~n <= 0;#res := 1; 698515#factFINAL assume true; 701414#factEXIT >#70#return; 701142#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701293#$Ultimate##0 ~n := #in~n; 701292#L25 assume !(~n <= 0); 701110#L26 call #t~ret0 := fact(~n - 1);< 701148#$Ultimate##0 ~n := #in~n; 701310#L25 assume !(~n <= 0); 701029#L26 call #t~ret0 := fact(~n - 1);< 701066#$Ultimate##0 ~n := #in~n; 702237#L25 assume !(~n <= 0); 700474#L26 call #t~ret0 := fact(~n - 1);< 701071#$Ultimate##0 ~n := #in~n; 701569#L25 assume !(~n <= 0); 701081#L26 call #t~ret0 := fact(~n - 1);< 701086#$Ultimate##0 ~n := #in~n; 701522#L25 assume !(~n <= 0); 698518#L26 call #t~ret0 := fact(~n - 1);< 701125#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701113#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 702361#factFINAL assume true; 702358#factEXIT >#72#return; 701374#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702351#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702348#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702346#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702286#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 701255#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701282#$Ultimate##0 ~n := #in~n; 701281#L25 assume !(~n <= 0); 700493#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701609#factFINAL assume true; 701551#factEXIT >#68#return; 700953#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 701287#$Ultimate##0 ~n := #in~n; 701285#L25 assume !(~n <= 0); 700301#L26 call #t~ret0 := fact(~n - 1);< 701077#$Ultimate##0 ~n := #in~n; 701349#L25 assume !(~n <= 0); 700471#L26 call #t~ret0 := fact(~n - 1);< 701322#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701409#factFINAL assume true; 701407#factEXIT >#70#return; 700647#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701381#$Ultimate##0 ~n := #in~n; 701673#L25 assume !(~n <= 0); 698519#L26 call #t~ret0 := fact(~n - 1);< 701170#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701380#factFINAL assume true; 701366#factEXIT >#72#return; 700714#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702285#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702284#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702283#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702282#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 701236#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701282#$Ultimate##0 ~n := #in~n; 701281#L25 assume !(~n <= 0); 700493#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701790#factFINAL assume true; 701789#factEXIT >#68#return; 700766#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698527#$Ultimate##0 ~n := #in~n; 701314#L25 assume !(~n <= 0); 700293#L26 call #t~ret0 := fact(~n - 1);< 701039#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701304#factFINAL assume true; 701297#factEXIT >#66#return; 701296#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701294#factFINAL assume true; 701127#factEXIT >#66#return; 701137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701218#factFINAL assume true; 701215#factEXIT >#66#return; 701216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701357#factFINAL assume true; 701355#factEXIT >#70#return; 700358#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701331#$Ultimate##0 ~n := #in~n; 701550#L25 assume !(~n <= 0); 700294#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700306#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701380#factFINAL assume true; 701366#factEXIT >#72#return; 700663#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702095#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702092#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702091#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702062#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 701273#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 701282#$Ultimate##0 ~n := #in~n; 701281#L25 assume !(~n <= 0); 700493#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701790#factFINAL assume true; 701789#factEXIT >#68#return; 700812#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 698527#$Ultimate##0 ~n := #in~n; 701314#L25 assume !(~n <= 0); 700293#L26 call #t~ret0 := fact(~n - 1);< 701039#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701304#factFINAL assume true; 701297#factEXIT >#66#return; 701296#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701294#factFINAL assume true; 701127#factEXIT >#66#return; 701137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701218#factFINAL assume true; 701215#factEXIT >#66#return; 701216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701357#factFINAL assume true; 701355#factEXIT >#70#return; 700346#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701331#$Ultimate##0 ~n := #in~n; 701550#L25 assume ~n <= 0;#res := 1; 701073#factFINAL assume true; 700503#factEXIT >#72#return; 700679#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702059#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 702058#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702057#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702054#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700090#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 700451#$Ultimate##0 ~n := #in~n; 701388#L25 assume !(~n <= 0); 700483#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#74#return; 700408#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700452#$Ultimate##0 ~n := #in~n; 702244#L25 assume !(~n <= 0); 700484#L26 call #t~ret0 := fact(~n - 1);< 701038#$Ultimate##0 ~n := #in~n; 701200#L25 assume !(~n <= 0); 700486#L26 call #t~ret0 := fact(~n - 1);< 700498#$Ultimate##0 ~n := #in~n; 701682#L25 assume !(~n <= 0); 701080#L26 call #t~ret0 := fact(~n - 1);< 701124#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701023#factFINAL assume true; 701022#factEXIT >#76#return; 700202#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700289#$Ultimate##0 ~n := #in~n; 701289#L25 assume !(~n <= 0); 700302#L26 call #t~ret0 := fact(~n - 1);< 700307#$Ultimate##0 ~n := #in~n; 700364#L25 assume ~n <= 0;#res := 1; 700308#factFINAL assume true; 700292#factEXIT >#66#return; 700291#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700290#factFINAL assume true; 700215#factEXIT >#78#return; 700273#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701545#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 701542#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701540#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701539#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700109#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701304#factFINAL assume true; 701297#factEXIT >#66#return; 701295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701283#factFINAL assume true; 700460#factEXIT >#74#return; 700154#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700212#$Ultimate##0 ~n := #in~n; 701168#L25 assume !(~n <= 0); 700482#L26 call #t~ret0 := fact(~n - 1);< 701058#$Ultimate##0 ~n := #in~n; 701343#L25 assume !(~n <= 0); 700480#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701088#factFINAL assume true; 701001#factEXIT >#76#return; 700216#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701117#$Ultimate##0 ~n := #in~n; 701105#L25 assume !(~n <= 0); 700295#L26 call #t~ret0 := fact(~n - 1);< 701089#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701015#factFINAL assume true; 701002#factEXIT >#78#return; 701003#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 701661#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 701662#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 701616#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 701617#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 700137#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701304#factFINAL assume true; 701297#factEXIT >#66#return; 701295#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701283#factFINAL assume true; 700460#factEXIT >#74#return; 700178#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700212#$Ultimate##0 ~n := #in~n; 701168#L25 assume !(~n <= 0); 700482#L26 call #t~ret0 := fact(~n - 1);< 701058#$Ultimate##0 ~n := #in~n; 701343#L25 assume !(~n <= 0); 700480#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701088#factFINAL assume true; 701001#factEXIT >#76#return; 700217#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 701117#$Ultimate##0 ~n := #in~n; 701105#L25 assume !(~n <= 0); 700295#L26 call #t~ret0 := fact(~n - 1);< 701089#$Ultimate##0 ~n := #in~n; 702411#L25 assume !(~n <= 0); 698520#L26 call #t~ret0 := fact(~n - 1);< 701323#$Ultimate##0 ~n := #in~n; 698516#L25 assume !(~n <= 0); 698521#L26 call #t~ret0 := fact(~n - 1);< 698529#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701082#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701014#factFINAL assume true; 700447#factEXIT >#78#return; 700434#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702331#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702330#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702329#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 702328#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 699897#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 698415#$Ultimate##0 ~n := #in~n; 701385#L25 assume !(~n <= 0); 701031#L26 call #t~ret0 := fact(~n - 1);< 701040#$Ultimate##0 ~n := #in~n; 702236#L25 assume !(~n <= 0); 700478#L26 call #t~ret0 := fact(~n - 1);< 701070#$Ultimate##0 ~n := #in~n; 702234#L25 assume !(~n <= 0); 700481#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701304#factFINAL assume true; 701297#factEXIT >#66#return; 701296#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701294#factFINAL assume true; 701127#factEXIT >#66#return; 701107#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701093#factFINAL assume true; 699865#factEXIT >#74#return; 699926#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 700212#$Ultimate##0 ~n := #in~n; 701168#L25 assume !(~n <= 0); 700482#L26 call #t~ret0 := fact(~n - 1);< 701058#$Ultimate##0 ~n := #in~n; 701343#L25 assume !(~n <= 0); 700480#L26 call #t~ret0 := fact(~n - 1);< 701116#$Ultimate##0 ~n := #in~n; 701217#L25 assume !(~n <= 0); 700479#L26 call #t~ret0 := fact(~n - 1);< 701085#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701042#factFINAL assume true; 701027#factEXIT >#66#return; 701035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701141#factFINAL assume true; 701109#factEXIT >#66#return; 701104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701088#factFINAL assume true; 701001#factEXIT >#76#return; 699927#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 700205#$Ultimate##0 ~n := #in~n; 701067#L25 assume !(~n <= 0); 700300#L26 call #t~ret0 := fact(~n - 1);< 701039#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 701325#L25 assume !(~n <= 0); 700492#L26 call #t~ret0 := fact(~n - 1);< 701324#$Ultimate##0 ~n := #in~n; 698530#L25 assume ~n <= 0;#res := 1; 701340#factFINAL assume true; 701319#factEXIT >#66#return; 701316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701169#factFINAL assume true; 701118#factEXIT >#66#return; 701106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 701094#factFINAL assume true; 701078#factEXIT >#66#return; 701076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700983#factFINAL assume true; 700467#factEXIT >#66#return; 700465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 700450#factFINAL assume true; 700365#factEXIT >#78#return; 700190#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 702339#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 702338#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 702337#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 698542#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 698543#L30-5 [2023-02-17 09:43:25,262 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:25,262 INFO L85 PathProgramCache]: Analyzing trace with hash -195230593, now seen corresponding path program 48 times [2023-02-17 09:43:25,262 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:25,262 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1654625829] [2023-02-17 09:43:25,262 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:25,262 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:25,297 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:25,297 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [686933311] [2023-02-17 09:43:25,297 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:43:25,297 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:25,297 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:25,300 INFO L229 MonitoredProcess]: Starting monitored process 245 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:25,300 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (245)] Waiting until timeout for monitored process [2023-02-17 09:43:26,324 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 16 check-sat command(s) [2023-02-17 09:43:26,324 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:26,330 INFO L263 TraceCheckSpWp]: Trace formula consists of 646 conjuncts, 25 conjunts are in the unsatisfiable core [2023-02-17 09:43:26,341 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:26,434 INFO L134 CoverageAnalysis]: Checked inductivity of 231910 backedges. 82525 proven. 140 refuted. 0 times theorem prover too weak. 149245 trivial. 0 not checked. [2023-02-17 09:43:26,434 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:26,656 INFO L134 CoverageAnalysis]: Checked inductivity of 231910 backedges. 9557 proven. 2499 refuted. 0 times theorem prover too weak. 219854 trivial. 0 not checked. [2023-02-17 09:43:26,656 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:26,656 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1654625829] [2023-02-17 09:43:26,657 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:26,657 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [686933311] [2023-02-17 09:43:26,657 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [686933311] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:26,657 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:26,657 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 22] total 25 [2023-02-17 09:43:26,657 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [64777729] [2023-02-17 09:43:26,657 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:26,658 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:26,658 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:26,658 INFO L85 PathProgramCache]: Analyzing trace with hash -712582420, now seen corresponding path program 42 times [2023-02-17 09:43:26,658 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:26,658 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [773206902] [2023-02-17 09:43:26,658 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:26,658 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:26,682 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:26,682 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1482695066] [2023-02-17 09:43:26,683 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:43:26,683 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:26,683 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:26,686 INFO L229 MonitoredProcess]: Starting monitored process 246 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:26,687 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (246)] Waiting until timeout for monitored process [2023-02-17 09:43:27,638 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 28 check-sat command(s) [2023-02-17 09:43:27,638 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:27,641 INFO L263 TraceCheckSpWp]: Trace formula consists of 561 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-17 09:43:27,646 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:27,728 INFO L134 CoverageAnalysis]: Checked inductivity of 76211 backedges. 31123 proven. 225 refuted. 0 times theorem prover too weak. 44863 trivial. 0 not checked. [2023-02-17 09:43:27,728 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:28,020 INFO L134 CoverageAnalysis]: Checked inductivity of 76211 backedges. 1575 proven. 5845 refuted. 0 times theorem prover too weak. 68791 trivial. 0 not checked. [2023-02-17 09:43:28,020 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:28,021 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [773206902] [2023-02-17 09:43:28,021 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:28,021 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1482695066] [2023-02-17 09:43:28,021 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1482695066] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:28,021 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:28,021 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 25] total 30 [2023-02-17 09:43:28,021 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1241274766] [2023-02-17 09:43:28,021 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:28,022 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:28,022 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:28,022 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 30 interpolants. [2023-02-17 09:43:28,022 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=124, Invalid=746, Unknown=0, NotChecked=0, Total=870 [2023-02-17 09:43:28,022 INFO L87 Difference]: Start difference. First operand 4030 states and 9410 transitions. cyclomatic complexity: 5423 Second operand has 30 states, 26 states have (on average 3.1538461538461537) internal successors, (82), 30 states have internal predecessors, (82), 19 states have call successors, (36), 2 states have call predecessors, (36), 12 states have return successors, (42), 13 states have call predecessors, (42), 19 states have call successors, (42) [2023-02-17 09:43:29,369 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:29,370 INFO L93 Difference]: Finished difference Result 4964 states and 10629 transitions. [2023-02-17 09:43:29,370 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4964 states and 10629 transitions. [2023-02-17 09:43:29,403 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 1068 [2023-02-17 09:43:29,445 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4964 states to 4818 states and 10385 transitions. [2023-02-17 09:43:29,445 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 756 [2023-02-17 09:43:29,446 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 756 [2023-02-17 09:43:29,446 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4818 states and 10385 transitions. [2023-02-17 09:43:29,446 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:29,446 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4818 states and 10385 transitions. [2023-02-17 09:43:29,448 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4818 states and 10385 transitions. [2023-02-17 09:43:29,681 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4818 to 3732. [2023-02-17 09:43:29,684 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3732 states, 2102 states have (on average 1.0428163653663178) internal successors, (2192), 2087 states have internal predecessors, (2192), 1376 states have call successors, (1403), 320 states have call predecessors, (1403), 254 states have return successors, (4333), 1324 states have call predecessors, (4333), 1376 states have call successors, (4333) [2023-02-17 09:43:29,698 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3732 states to 3732 states and 7928 transitions. [2023-02-17 09:43:29,698 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3732 states and 7928 transitions. [2023-02-17 09:43:29,699 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2023-02-17 09:43:29,699 INFO L428 stractBuchiCegarLoop]: Abstraction has 3732 states and 7928 transitions. [2023-02-17 09:43:29,699 INFO L335 stractBuchiCegarLoop]: ======== Iteration 72 ============ [2023-02-17 09:43:29,699 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3732 states and 7928 transitions. [2023-02-17 09:43:29,708 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 995 [2023-02-17 09:43:29,709 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:29,709 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:29,712 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [205, 205, 141, 141, 141, 141, 64, 22, 21, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 7, 7, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:29,712 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [91, 91, 67, 67, 67, 67, 24, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:43:29,712 INFO L748 eck$LassoCheckResult]: Stem: 725161#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 725110#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 725111#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 725132#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 725124#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 725125#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 725865#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725862#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725863#$Ultimate##0 ~n := #in~n; 725870#L25 assume ~n <= 0;#res := 1; 725869#factFINAL assume true; 725861#factEXIT >#68#return; 725857#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725858#$Ultimate##0 ~n := #in~n; 725868#L25 assume ~n <= 0;#res := 1; 725860#factFINAL assume true; 725856#factEXIT >#70#return; 725853#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 725854#$Ultimate##0 ~n := #in~n; 725873#L25 assume ~n <= 0;#res := 1; 725867#factFINAL assume true; 725852#factEXIT >#72#return; 725850#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 725849#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 725848#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 725846#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 725844#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725812#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725813#$Ultimate##0 ~n := #in~n; 725832#L25 assume !(~n <= 0); 725827#L26 call #t~ret0 := fact(~n - 1);< 725830#$Ultimate##0 ~n := #in~n; 725835#L25 assume ~n <= 0;#res := 1; 725833#factFINAL assume true; 725826#factEXIT >#66#return; 725822#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725820#factFINAL assume true; 725811#factEXIT >#74#return; 725809#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725810#$Ultimate##0 ~n := #in~n; 725843#L25 assume ~n <= 0;#res := 1; 725840#factFINAL assume true; 725808#factEXIT >#76#return; 725805#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 725806#$Ultimate##0 ~n := #in~n; 725834#L25 assume !(~n <= 0); 725828#L26 call #t~ret0 := fact(~n - 1);< 725830#$Ultimate##0 ~n := #in~n; 725835#L25 assume ~n <= 0;#res := 1; 725833#factFINAL assume true; 725826#factEXIT >#66#return; 725829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725837#factFINAL assume true; 725804#factEXIT >#78#return; 725802#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 725798#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 725797#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 725796#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 725794#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725762#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725764#$Ultimate##0 ~n := #in~n; 725783#L25 assume !(~n <= 0); 725773#L26 call #t~ret0 := fact(~n - 1);< 725774#$Ultimate##0 ~n := #in~n; 725838#L25 assume !(~n <= 0); 725772#L26 call #t~ret0 := fact(~n - 1);< 725790#$Ultimate##0 ~n := #in~n; 725841#L25 assume ~n <= 0;#res := 1; 725836#factFINAL assume true; 725823#factEXIT >#66#return; 725821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725799#factFINAL assume true; 725786#factEXIT >#66#return; 725788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725819#factFINAL assume true; 725817#factEXIT >#74#return; 725815#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725816#$Ultimate##0 ~n := #in~n; 725847#L25 assume ~n <= 0;#res := 1; 725845#factFINAL assume true; 725814#factEXIT >#76#return; 725800#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 725807#$Ultimate##0 ~n := #in~n; 725803#L25 assume !(~n <= 0); 725787#L26 call #t~ret0 := fact(~n - 1);< 725801#$Ultimate##0 ~n := #in~n; 725831#L25 assume !(~n <= 0); 725824#L26 call #t~ret0 := fact(~n - 1);< 725825#$Ultimate##0 ~n := #in~n; 725841#L25 assume ~n <= 0;#res := 1; 725836#factFINAL assume true; 725823#factEXIT >#66#return; 725821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725799#factFINAL assume true; 725786#factEXIT >#66#return; 725789#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725842#factFINAL assume true; 725839#factEXIT >#78#return; 725791#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 725782#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 725779#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 725770#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 725767#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725763#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725764#$Ultimate##0 ~n := #in~n; 725783#L25 assume !(~n <= 0); 725773#L26 call #t~ret0 := fact(~n - 1);< 725774#$Ultimate##0 ~n := #in~n; 725838#L25 assume !(~n <= 0); 725772#L26 call #t~ret0 := fact(~n - 1);< 725790#$Ultimate##0 ~n := #in~n; 725838#L25 assume !(~n <= 0); 725772#L26 call #t~ret0 := fact(~n - 1);< 725790#$Ultimate##0 ~n := #in~n; 725841#L25 assume ~n <= 0;#res := 1; 725836#factFINAL assume true; 725823#factEXIT >#66#return; 725821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725799#factFINAL assume true; 725786#factEXIT >#66#return; 725781#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725778#factFINAL assume true; 725771#factEXIT >#66#return; 725769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725766#factFINAL assume true; 725761#factEXIT >#74#return; 725747#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725748#$Ultimate##0 ~n := #in~n; 725759#L25 assume ~n <= 0;#res := 1; 725755#factFINAL assume true; 725746#factEXIT >#76#return; 725742#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 725743#$Ultimate##0 ~n := #in~n; 725754#L25 assume !(~n <= 0); 725732#L26 call #t~ret0 := fact(~n - 1);< 725745#$Ultimate##0 ~n := #in~n; 725818#L25 assume !(~n <= 0); 725731#L26 call #t~ret0 := fact(~n - 1);< 725735#$Ultimate##0 ~n := #in~n; 725795#L25 assume !(~n <= 0); 725733#L26 call #t~ret0 := fact(~n - 1);< 725785#$Ultimate##0 ~n := #in~n; 725793#L25 assume ~n <= 0;#res := 1; 725792#factFINAL assume true; 725784#factEXIT >#66#return; 725780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725777#factFINAL assume true; 725768#factEXIT >#66#return; 725765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725760#factFINAL assume true; 725756#factEXIT >#66#return; 725734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725945#factFINAL assume true; 725741#factEXIT >#78#return; 725740#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 725739#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 725738#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 725736#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 725728#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725719#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725720#$Ultimate##0 ~n := #in~n; 725737#L25 assume !(~n <= 0); 725730#L26 call #t~ret0 := fact(~n - 1);< 725735#$Ultimate##0 ~n := #in~n; 725795#L25 assume !(~n <= 0); 725733#L26 call #t~ret0 := fact(~n - 1);< 725785#$Ultimate##0 ~n := #in~n; 725795#L25 assume !(~n <= 0); 725733#L26 call #t~ret0 := fact(~n - 1);< 725785#$Ultimate##0 ~n := #in~n; 725795#L25 assume !(~n <= 0); 725733#L26 call #t~ret0 := fact(~n - 1);< 725785#$Ultimate##0 ~n := #in~n; 725793#L25 assume ~n <= 0;#res := 1; 725792#factFINAL assume true; 725784#factEXIT >#66#return; 725780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725777#factFINAL assume true; 725768#factEXIT >#66#return; 725765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725760#factFINAL assume true; 725756#factEXIT >#66#return; 725753#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725744#factFINAL assume true; 725729#factEXIT >#66#return; 725727#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725724#factFINAL assume true; 725718#factEXIT >#74#return; 725714#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725715#$Ultimate##0 ~n := #in~n; 725723#L25 assume ~n <= 0;#res := 1; 725717#factFINAL assume true; 725713#factEXIT >#76#return; 725492#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 725710#$Ultimate##0 ~n := #in~n; 725707#L25 assume !(~n <= 0); 725671#L26 call #t~ret0 := fact(~n - 1);< 725705#$Ultimate##0 ~n := #in~n; 725752#L25 assume !(~n <= 0); 725673#L26 call #t~ret0 := fact(~n - 1);< 725709#$Ultimate##0 ~n := #in~n; 725751#L25 assume !(~n <= 0); 725676#L26 call #t~ret0 := fact(~n - 1);< 725726#$Ultimate##0 ~n := #in~n; 725751#L25 assume !(~n <= 0); 725676#L26 call #t~ret0 := fact(~n - 1);< 725726#$Ultimate##0 ~n := #in~n; 725750#L25 assume ~n <= 0;#res := 1; 725749#factFINAL assume true; 725725#factEXIT >#66#return; 725722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725721#factFINAL assume true; 725716#factEXIT >#66#return; 725712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725711#factFINAL assume true; 725708#factEXIT >#66#return; 725706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725704#factFINAL assume true; 725701#factEXIT >#66#return; 725702#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725950#factFINAL assume true; 725491#factEXIT >#78#return; 725490#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 725488#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 725489#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 725484#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 725485#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725391#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725392#$Ultimate##0 ~n := #in~n; 725402#L25 assume !(~n <= 0); 725399#L26 call #t~ret0 := fact(~n - 1);< 725400#$Ultimate##0 ~n := #in~n; 725413#L25 assume !(~n <= 0); 725409#L26 call #t~ret0 := fact(~n - 1);< 725410#$Ultimate##0 ~n := #in~n; 725427#L25 assume !(~n <= 0); 725416#L26 call #t~ret0 := fact(~n - 1);< 725418#$Ultimate##0 ~n := #in~n; 725428#L25 assume !(~n <= 0); 725417#L26 call #t~ret0 := fact(~n - 1);< 725423#$Ultimate##0 ~n := #in~n; 725428#L25 assume !(~n <= 0); 725417#L26 call #t~ret0 := fact(~n - 1);< 725423#$Ultimate##0 ~n := #in~n; 725433#L25 assume ~n <= 0;#res := 1; 725431#factFINAL assume true; 725430#factEXIT >#66#return; 725426#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725425#factFINAL assume true; 725422#factEXIT >#66#return; 725420#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725419#factFINAL assume true; 725415#factEXIT >#66#return; 725414#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725411#factFINAL assume true; 725408#factEXIT >#66#return; 725407#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725405#factFINAL assume true; 725398#factEXIT >#66#return; 725397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725396#factFINAL assume true; 725390#factEXIT >#74#return; 725388#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725389#$Ultimate##0 ~n := #in~n; 725406#L25 assume ~n <= 0;#res := 1; 725404#factFINAL assume true; 725387#factEXIT >#76#return; 725254#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 725255#$Ultimate##0 ~n := #in~n; 725306#L25 assume !(~n <= 0); 725270#L26 call #t~ret0 := fact(~n - 1);< 725305#$Ultimate##0 ~n := #in~n; 725333#L25 assume !(~n <= 0); 725278#L26 call #t~ret0 := fact(~n - 1);< 725312#$Ultimate##0 ~n := #in~n; 725339#L25 assume !(~n <= 0); 725277#L26 call #t~ret0 := fact(~n - 1);< 725321#$Ultimate##0 ~n := #in~n; 725352#L25 assume !(~n <= 0); 725279#L26 call #t~ret0 := fact(~n - 1);< 725326#$Ultimate##0 ~n := #in~n; 725349#L25 assume !(~n <= 0); 725275#L26 call #t~ret0 := fact(~n - 1);< 725341#$Ultimate##0 ~n := #in~n; 725348#L25 assume ~n <= 0;#res := 1; 725344#factFINAL assume true; 725340#factEXIT >#66#return; 725338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725337#factFINAL assume true; 725325#factEXIT >#66#return; 725323#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725322#factFINAL assume true; 725320#factEXIT >#66#return; 725318#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725316#factFINAL assume true; 725311#factEXIT >#66#return; 725310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725308#factFINAL assume true; 725304#factEXIT >#66#return; 725281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 725495#factFINAL assume true; 725496#factEXIT >#78#return; 725249#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727531#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 727529#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 727527#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 727526#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 727525#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 727521#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 727518#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727417#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 727493#$Ultimate##0 ~n := #in~n; 727534#L25 assume !(~n <= 0); 727523#L26 call #t~ret0 := fact(~n - 1);< 727524#$Ultimate##0 ~n := #in~n; 727530#L25 assume ~n <= 0;#res := 1; 727528#factFINAL assume true; 727522#factEXIT >#66#return; 727503#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727502#factFINAL assume true; 727492#factEXIT >#68#return; 727397#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 727439#$Ultimate##0 ~n := #in~n; 727449#L25 assume ~n <= 0;#res := 1; 727445#factFINAL assume true; 727396#factEXIT >#70#return; 727393#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727394#$Ultimate##0 ~n := #in~n; 727457#L25 assume !(~n <= 0); 727455#L26 call #t~ret0 := fact(~n - 1);< 727456#$Ultimate##0 ~n := #in~n; 727459#L25 assume ~n <= 0;#res := 1; 727458#factFINAL assume true; 727454#factEXIT >#66#return; 727453#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727452#factFINAL assume true; 727392#factEXIT >#72#return; 727390#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727389#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 727388#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 727387#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 727385#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727337#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 727384#$Ultimate##0 ~n := #in~n; 727556#L25 assume !(~n <= 0); 726600#L26 call #t~ret0 := fact(~n - 1);< 727155#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727386#factFINAL assume true; 727336#factEXIT >#68#return; 727338#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 727383#$Ultimate##0 ~n := #in~n; 728197#L25 assume !(~n <= 0); 726606#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727386#factFINAL assume true; 727336#factEXIT >#70#return; 727255#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727335#$Ultimate##0 ~n := #in~n; 727549#L25 assume ~n <= 0;#res := 1; 727199#factFINAL assume true; 727215#factEXIT >#72#return; 727214#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727213#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 727212#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 727086#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 727077#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726467#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 726505#$Ultimate##0 ~n := #in~n; 726913#L25 assume !(~n <= 0); 726607#L26 call #t~ret0 := fact(~n - 1);< 726872#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#74#return; 726556#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 726593#$Ultimate##0 ~n := #in~n; 727569#L25 assume !(~n <= 0); 726603#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726594#factFINAL assume true; 726523#factEXIT >#76#return; 726526#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726593#$Ultimate##0 ~n := #in~n; 727569#L25 assume !(~n <= 0); 726603#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726594#factFINAL assume true; 726523#factEXIT >#78#return; 726572#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727207#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 727206#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 727204#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 727203#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726693#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725070#$Ultimate##0 ~n := #in~n; 727508#L25 assume !(~n <= 0); 726761#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 727071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727087#factFINAL assume true; 726666#factEXIT >#74#return; 726562#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 726593#$Ultimate##0 ~n := #in~n; 727569#L25 assume !(~n <= 0); 726603#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726594#factFINAL assume true; 726523#factEXIT >#76#return; 726563#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727063#$Ultimate##0 ~n := #in~n; 727487#L25 assume !(~n <= 0); 726597#L26 call #t~ret0 := fact(~n - 1);< 727469#$Ultimate##0 ~n := #in~n; 727555#L25 assume !(~n <= 0); 725154#L26 call #t~ret0 := fact(~n - 1);< 725153#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#78#return; 726893#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 726883#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 726791#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 726758#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 726749#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726699#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725070#$Ultimate##0 ~n := #in~n; 727508#L25 assume !(~n <= 0); 726761#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726740#factFINAL assume true; 726729#factEXIT >#74#return; 726569#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 726593#$Ultimate##0 ~n := #in~n; 727569#L25 assume !(~n <= 0); 726603#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726594#factFINAL assume true; 726523#factEXIT >#76#return; 726591#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726741#$Ultimate##0 ~n := #in~n; 727506#L25 assume !(~n <= 0); 726782#L26 call #t~ret0 := fact(~n - 1);< 726820#$Ultimate##0 ~n := #in~n; 727505#L25 assume !(~n <= 0); 727069#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 727071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727087#factFINAL assume true; 726666#factEXIT >#78#return; 726728#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727090#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 726911#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 726897#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 726797#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726277#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 726753#$Ultimate##0 ~n := #in~n; 727536#L25 assume !(~n <= 0); 726858#L26 call #t~ret0 := fact(~n - 1);< 726891#$Ultimate##0 ~n := #in~n; 727574#L25 assume !(~n <= 0); 726765#L26 call #t~ret0 := fact(~n - 1);< 727084#$Ultimate##0 ~n := #in~n; 727573#L25 assume !(~n <= 0); 726762#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726920#factFINAL assume true; 726884#factEXIT >#66#return; 726882#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726794#factFINAL assume true; 726752#factEXIT >#74#return; 726533#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 726593#$Ultimate##0 ~n := #in~n; 727569#L25 assume !(~n <= 0); 726603#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726594#factFINAL assume true; 726523#factEXIT >#76#return; 726580#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726741#$Ultimate##0 ~n := #in~n; 727506#L25 assume !(~n <= 0); 726782#L26 call #t~ret0 := fact(~n - 1);< 726820#$Ultimate##0 ~n := #in~n; 727505#L25 assume !(~n <= 0); 727069#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 727555#L25 assume !(~n <= 0); 725154#L26 call #t~ret0 := fact(~n - 1);< 725153#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726740#factFINAL assume true; 726729#factEXIT >#78#return; 726171#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 726168#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 726165#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 726161#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 726154#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726054#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725068#$Ultimate##0 ~n := #in~n; 726507#L25 assume !(~n <= 0); 726080#L26 call #t~ret0 := fact(~n - 1);< 726093#$Ultimate##0 ~n := #in~n; 726508#L25 assume !(~n <= 0); 726084#L26 call #t~ret0 := fact(~n - 1);< 726096#$Ultimate##0 ~n := #in~n; 726509#L25 assume !(~n <= 0); 726075#L26 call #t~ret0 := fact(~n - 1);< 726101#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726108#factFINAL assume true; 726105#factEXIT >#66#return; 726104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726102#factFINAL assume true; 726098#factEXIT >#66#return; 726100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726517#factFINAL assume true; 726515#factEXIT >#66#return; 726516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726522#factFINAL assume true; 726518#factEXIT >#66#return; 726519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726053#factFINAL assume true; 726067#factEXIT >#74#return; 726148#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725157#$Ultimate##0 ~n := #in~n; 726164#L25 assume !(~n <= 0); 726159#L26 call #t~ret0 := fact(~n - 1);< 726160#$Ultimate##0 ~n := #in~n; 726167#L25 assume ~n <= 0;#res := 1; 726163#factFINAL assume true; 726158#factEXIT >#66#return; 726153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726151#factFINAL assume true; 726147#factEXIT >#76#return; 725185#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726131#$Ultimate##0 ~n := #in~n; 726129#L25 assume !(~n <= 0); 726085#L26 call #t~ret0 := fact(~n - 1);< 726109#$Ultimate##0 ~n := #in~n; 726125#L25 assume !(~n <= 0); 726076#L26 call #t~ret0 := fact(~n - 1);< 726101#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726108#factFINAL assume true; 726105#factEXIT >#66#return; 726104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726102#factFINAL assume true; 726098#factEXIT >#66#return; 726100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726517#factFINAL assume true; 726515#factEXIT >#66#return; 726516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726522#factFINAL assume true; 726518#factEXIT >#66#return; 726519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726053#factFINAL assume true; 726067#factEXIT >#78#return; 725112#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 725113#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 725133#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 725146#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 725126#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 725127#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 725166#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 725135#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725074#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725107#$Ultimate##0 ~n := #in~n; 727986#L25 assume !(~n <= 0); 727727#L26 call #t~ret0 := fact(~n - 1);< 727985#$Ultimate##0 ~n := #in~n; 727532#L25 assume !(~n <= 0); 727730#L26 call #t~ret0 := fact(~n - 1);< 728140#$Ultimate##0 ~n := #in~n; 728149#L25 assume ~n <= 0;#res := 1; 728148#factFINAL assume true; 728139#factEXIT >#66#return; 728137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728126#factFINAL assume true; 728114#factEXIT >#66#return; 728112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728110#factFINAL assume true; 728109#factEXIT >#68#return; 727418#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 727439#$Ultimate##0 ~n := #in~n; 727449#L25 assume ~n <= 0;#res := 1; 727445#factFINAL assume true; 727396#factEXIT >#70#return; 727438#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727754#$Ultimate##0 ~n := #in~n; 728135#L25 assume !(~n <= 0); 727861#L26 call #t~ret0 := fact(~n - 1);< 727866#$Ultimate##0 ~n := #in~n; 727460#L25 assume !(~n <= 0); 727886#L26 call #t~ret0 := fact(~n - 1);< 727887#$Ultimate##0 ~n := #in~n; 728122#L25 assume ~n <= 0;#res := 1; 728121#factFINAL assume true; 727885#factEXIT >#66#return; 727884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727879#factFINAL assume true; 727857#factEXIT >#66#return; 727856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727854#factFINAL assume true; 727751#factEXIT >#72#return; 727750#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727748#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 727745#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 727744#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 727741#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727477#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 727513#$Ultimate##0 ~n := #in~n; 727510#L25 assume !(~n <= 0); 727066#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727698#factFINAL assume true; 727651#factEXIT >#68#return; 727027#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725152#$Ultimate##0 ~n := #in~n; 727211#L25 assume !(~n <= 0); 726610#L26 call #t~ret0 := fact(~n - 1);< 727039#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727386#factFINAL assume true; 727336#factEXIT >#70#return; 726648#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727540#$Ultimate##0 ~n := #in~n; 727539#L25 assume !(~n <= 0); 726609#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727639#factFINAL assume true; 727632#factEXIT >#72#return; 727636#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 727664#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 727662#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 727657#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 727655#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727482#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 727513#$Ultimate##0 ~n := #in~n; 727510#L25 assume !(~n <= 0); 727066#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727698#factFINAL assume true; 727651#factEXIT >#68#return; 727029#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725152#$Ultimate##0 ~n := #in~n; 727211#L25 assume !(~n <= 0); 726610#L26 call #t~ret0 := fact(~n - 1);< 727039#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727698#factFINAL assume true; 727651#factEXIT >#70#return; 726655#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727540#$Ultimate##0 ~n := #in~n; 727539#L25 assume ~n <= 0;#res := 1; 727199#factFINAL assume true; 727215#factEXIT >#72#return; 727333#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728327#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728326#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728325#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728324#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726716#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725070#$Ultimate##0 ~n := #in~n; 727508#L25 assume !(~n <= 0); 726761#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 727071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727087#factFINAL assume true; 726666#factEXIT >#74#return; 726715#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725159#$Ultimate##0 ~n := #in~n; 727471#L25 assume !(~n <= 0); 726783#L26 call #t~ret0 := fact(~n - 1);< 727074#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726565#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727063#$Ultimate##0 ~n := #in~n; 727487#L25 assume !(~n <= 0); 726597#L26 call #t~ret0 := fact(~n - 1);< 727469#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726594#factFINAL assume true; 726523#factEXIT >#78#return; 726589#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728323#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728322#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728321#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728320#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726670#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725070#$Ultimate##0 ~n := #in~n; 727508#L25 assume !(~n <= 0); 726761#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726740#factFINAL assume true; 726729#factEXIT >#74#return; 726669#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725159#$Ultimate##0 ~n := #in~n; 727471#L25 assume !(~n <= 0); 726783#L26 call #t~ret0 := fact(~n - 1);< 727074#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726525#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727063#$Ultimate##0 ~n := #in~n; 727487#L25 assume !(~n <= 0); 726597#L26 call #t~ret0 := fact(~n - 1);< 727469#$Ultimate##0 ~n := #in~n; 727555#L25 assume !(~n <= 0); 725154#L26 call #t~ret0 := fact(~n - 1);< 725153#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#78#return; 727055#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728319#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728318#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728317#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728316#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726313#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 726753#$Ultimate##0 ~n := #in~n; 727536#L25 assume !(~n <= 0); 726858#L26 call #t~ret0 := fact(~n - 1);< 726891#$Ultimate##0 ~n := #in~n; 727574#L25 assume !(~n <= 0); 726765#L26 call #t~ret0 := fact(~n - 1);< 727084#$Ultimate##0 ~n := #in~n; 727573#L25 assume !(~n <= 0); 726762#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726920#factFINAL assume true; 726884#factEXIT >#66#return; 726882#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726794#factFINAL assume true; 726752#factEXIT >#74#return; 726668#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725159#$Ultimate##0 ~n := #in~n; 727471#L25 assume !(~n <= 0); 726783#L26 call #t~ret0 := fact(~n - 1);< 727074#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726667#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726741#$Ultimate##0 ~n := #in~n; 727506#L25 assume !(~n <= 0); 726782#L26 call #t~ret0 := fact(~n - 1);< 726820#$Ultimate##0 ~n := #in~n; 727505#L25 assume !(~n <= 0); 727069#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 727071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727087#factFINAL assume true; 726666#factEXIT >#78#return; 726717#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728315#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728314#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728313#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728312#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726322#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 726753#$Ultimate##0 ~n := #in~n; 727536#L25 assume !(~n <= 0); 726858#L26 call #t~ret0 := fact(~n - 1);< 726891#$Ultimate##0 ~n := #in~n; 727574#L25 assume !(~n <= 0); 726765#L26 call #t~ret0 := fact(~n - 1);< 727084#$Ultimate##0 ~n := #in~n; 727573#L25 assume !(~n <= 0); 726762#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726920#factFINAL assume true; 726884#factEXIT >#66#return; 726882#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726794#factFINAL assume true; 726752#factEXIT >#74#return; 726674#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725159#$Ultimate##0 ~n := #in~n; 727471#L25 assume !(~n <= 0); 726783#L26 call #t~ret0 := fact(~n - 1);< 727074#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726675#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726741#$Ultimate##0 ~n := #in~n; 727506#L25 assume !(~n <= 0); 726782#L26 call #t~ret0 := fact(~n - 1);< 726820#$Ultimate##0 ~n := #in~n; 727505#L25 assume !(~n <= 0); 727069#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 727555#L25 assume !(~n <= 0); 725154#L26 call #t~ret0 := fact(~n - 1);< 725153#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726740#factFINAL assume true; 726729#factEXIT >#78#return; 726493#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728308#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728306#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728304#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728303#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726062#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725068#$Ultimate##0 ~n := #in~n; 726507#L25 assume !(~n <= 0); 726080#L26 call #t~ret0 := fact(~n - 1);< 726093#$Ultimate##0 ~n := #in~n; 726508#L25 assume !(~n <= 0); 726084#L26 call #t~ret0 := fact(~n - 1);< 726096#$Ultimate##0 ~n := #in~n; 726509#L25 assume !(~n <= 0); 726075#L26 call #t~ret0 := fact(~n - 1);< 726101#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726108#factFINAL assume true; 726105#factEXIT >#66#return; 726104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726102#factFINAL assume true; 726098#factEXIT >#66#return; 726100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726517#factFINAL assume true; 726515#factEXIT >#66#return; 726516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726522#factFINAL assume true; 726518#factEXIT >#66#return; 726520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726094#factFINAL assume true; 726095#factEXIT >#66#return; 726521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728023#factFINAL assume true; 728022#factEXIT >#66#return; 726092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726097#factFINAL assume true; 726072#factEXIT >#66#return; 726091#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726511#factFINAL assume true; 726152#factEXIT >#74#return; 725211#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 726118#$Ultimate##0 ~n := #in~n; 726116#L25 assume !(~n <= 0); 726081#L26 call #t~ret0 := fact(~n - 1);< 726115#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726113#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728311#factFINAL assume true; 728302#factEXIT >#76#return; 725196#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726136#$Ultimate##0 ~n := #in~n; 726134#L25 assume !(~n <= 0); 726089#L26 call #t~ret0 := fact(~n - 1);< 726132#$Ultimate##0 ~n := #in~n; 726130#L25 assume !(~n <= 0); 726083#L26 call #t~ret0 := fact(~n - 1);< 726122#$Ultimate##0 ~n := #in~n; 726120#L25 assume !(~n <= 0); 726088#L26 call #t~ret0 := fact(~n - 1);< 726107#$Ultimate##0 ~n := #in~n; 726125#L25 assume !(~n <= 0); 726076#L26 call #t~ret0 := fact(~n - 1);< 726101#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726108#factFINAL assume true; 726105#factEXIT >#66#return; 726104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726102#factFINAL assume true; 726098#factEXIT >#66#return; 726100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726517#factFINAL assume true; 726515#factEXIT >#66#return; 726516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726522#factFINAL assume true; 726518#factEXIT >#66#return; 726519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726053#factFINAL assume true; 726067#factEXIT >#78#return; 725244#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728300#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728296#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 728294#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 728293#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 728292#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728291#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725079#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725107#$Ultimate##0 ~n := #in~n; 727986#L25 assume !(~n <= 0); 727727#L26 call #t~ret0 := fact(~n - 1);< 727985#$Ultimate##0 ~n := #in~n; 727532#L25 assume !(~n <= 0); 727730#L26 call #t~ret0 := fact(~n - 1);< 728140#$Ultimate##0 ~n := #in~n; 728149#L25 assume ~n <= 0;#res := 1; 728148#factFINAL assume true; 728139#factEXIT >#66#return; 728137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728126#factFINAL assume true; 728114#factEXIT >#66#return; 728112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728110#factFINAL assume true; 728109#factEXIT >#68#return; 727402#L30-1 [2023-02-17 09:43:29,713 INFO L750 eck$LassoCheckResult]: Loop: 727402#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 727439#$Ultimate##0 ~n := #in~n; 727449#L25 assume ~n <= 0;#res := 1; 727445#factFINAL assume true; 727396#factEXIT >#70#return; 725085#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727754#$Ultimate##0 ~n := #in~n; 728135#L25 assume !(~n <= 0); 727861#L26 call #t~ret0 := fact(~n - 1);< 727866#$Ultimate##0 ~n := #in~n; 727460#L25 assume !(~n <= 0); 727886#L26 call #t~ret0 := fact(~n - 1);< 727887#$Ultimate##0 ~n := #in~n; 728122#L25 assume ~n <= 0;#res := 1; 728121#factFINAL assume true; 727885#factEXIT >#66#return; 727884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727879#factFINAL assume true; 727857#factEXIT >#66#return; 727856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727854#factFINAL assume true; 727751#factEXIT >#72#return; 727752#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728754#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728753#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728752#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728750#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727478#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 727513#$Ultimate##0 ~n := #in~n; 727510#L25 assume !(~n <= 0); 727066#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727698#factFINAL assume true; 727651#factEXIT >#68#return; 726992#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725152#$Ultimate##0 ~n := #in~n; 727211#L25 assume !(~n <= 0); 726610#L26 call #t~ret0 := fact(~n - 1);< 727039#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727386#factFINAL assume true; 727336#factEXIT >#70#return; 726625#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727540#$Ultimate##0 ~n := #in~n; 727539#L25 assume !(~n <= 0); 726609#L26 call #t~ret0 := fact(~n - 1);< 726614#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727639#factFINAL assume true; 727632#factEXIT >#72#return; 727635#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728745#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728743#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728741#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728739#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 727480#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 727513#$Ultimate##0 ~n := #in~n; 727510#L25 assume !(~n <= 0); 727066#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727698#factFINAL assume true; 727651#factEXIT >#68#return; 726935#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725152#$Ultimate##0 ~n := #in~n; 727211#L25 assume !(~n <= 0); 726610#L26 call #t~ret0 := fact(~n - 1);< 727039#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727467#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727698#factFINAL assume true; 727651#factEXIT >#70#return; 726621#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727540#$Ultimate##0 ~n := #in~n; 727539#L25 assume ~n <= 0;#res := 1; 727199#factFINAL assume true; 727215#factEXIT >#72#return; 727285#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728791#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 728790#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728650#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728644#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725069#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725070#$Ultimate##0 ~n := #in~n; 727508#L25 assume !(~n <= 0); 726761#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 727071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727087#factFINAL assume true; 726666#factEXIT >#74#return; 725158#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725159#$Ultimate##0 ~n := #in~n; 727471#L25 assume !(~n <= 0); 726783#L26 call #t~ret0 := fact(~n - 1);< 727074#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726540#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727063#$Ultimate##0 ~n := #in~n; 727487#L25 assume !(~n <= 0); 726597#L26 call #t~ret0 := fact(~n - 1);< 727469#$Ultimate##0 ~n := #in~n; 726665#L25 assume ~n <= 0;#res := 1; 726615#factFINAL assume true; 726596#factEXIT >#66#return; 726595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726594#factFINAL assume true; 726523#factEXIT >#78#return; 726583#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728635#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728633#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728631#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728630#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726700#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725070#$Ultimate##0 ~n := #in~n; 727508#L25 assume !(~n <= 0); 726761#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726740#factFINAL assume true; 726729#factEXIT >#74#return; 726703#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725159#$Ultimate##0 ~n := #in~n; 727471#L25 assume !(~n <= 0); 726783#L26 call #t~ret0 := fact(~n - 1);< 727074#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726541#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 727063#$Ultimate##0 ~n := #in~n; 727487#L25 assume !(~n <= 0); 726597#L26 call #t~ret0 := fact(~n - 1);< 727469#$Ultimate##0 ~n := #in~n; 727555#L25 assume !(~n <= 0); 725154#L26 call #t~ret0 := fact(~n - 1);< 725153#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#78#return; 727058#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728392#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728391#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728390#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728389#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726301#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 726753#$Ultimate##0 ~n := #in~n; 727536#L25 assume !(~n <= 0); 726858#L26 call #t~ret0 := fact(~n - 1);< 726891#$Ultimate##0 ~n := #in~n; 727574#L25 assume !(~n <= 0); 726765#L26 call #t~ret0 := fact(~n - 1);< 727084#$Ultimate##0 ~n := #in~n; 727573#L25 assume !(~n <= 0); 726762#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726920#factFINAL assume true; 726884#factEXIT >#66#return; 726882#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726794#factFINAL assume true; 726752#factEXIT >#74#return; 726696#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 725159#$Ultimate##0 ~n := #in~n; 727471#L25 assume !(~n <= 0); 726783#L26 call #t~ret0 := fact(~n - 1);< 727074#$Ultimate##0 ~n := #in~n; 727533#L25 assume !(~n <= 0); 726773#L26 call #t~ret0 := fact(~n - 1);< 727501#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726671#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726741#$Ultimate##0 ~n := #in~n; 727506#L25 assume !(~n <= 0); 726782#L26 call #t~ret0 := fact(~n - 1);< 726820#$Ultimate##0 ~n := #in~n; 727505#L25 assume !(~n <= 0); 727069#L26 call #t~ret0 := fact(~n - 1);< 727485#$Ultimate##0 ~n := #in~n; 727551#L25 assume !(~n <= 0); 727464#L26 call #t~ret0 := fact(~n - 1);< 727499#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 727071#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727087#factFINAL assume true; 726666#factEXIT >#78#return; 726721#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728388#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728387#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728386#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728385#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726364#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 726753#$Ultimate##0 ~n := #in~n; 727536#L25 assume !(~n <= 0); 726858#L26 call #t~ret0 := fact(~n - 1);< 726891#$Ultimate##0 ~n := #in~n; 727574#L25 assume !(~n <= 0); 726765#L26 call #t~ret0 := fact(~n - 1);< 727084#$Ultimate##0 ~n := #in~n; 727573#L25 assume !(~n <= 0); 726762#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726785#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726920#factFINAL assume true; 726884#factEXIT >#66#return; 726888#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727170#factFINAL assume true; 727078#factEXIT >#66#return; 727076#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726898#factFINAL assume true; 726856#factEXIT >#66#return; 726855#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726757#factFINAL assume true; 726742#factEXIT >#74#return; 726399#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 727093#$Ultimate##0 ~n := #in~n; 727470#L25 assume !(~n <= 0); 726781#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727092#factFINAL assume true; 727052#factEXIT >#76#return; 726420#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726512#$Ultimate##0 ~n := #in~n; 727538#L25 assume !(~n <= 0); 726770#L26 call #t~ret0 := fact(~n - 1);< 726871#$Ultimate##0 ~n := #in~n; 727515#L25 assume !(~n <= 0); 726764#L26 call #t~ret0 := fact(~n - 1);< 727154#$Ultimate##0 ~n := #in~n; 727509#L25 assume !(~n <= 0); 726763#L26 call #t~ret0 := fact(~n - 1);< 726789#$Ultimate##0 ~n := #in~n; 727507#L25 assume !(~n <= 0); 726776#L26 call #t~ret0 := fact(~n - 1);< 727497#$Ultimate##0 ~n := #in~n; 725155#L25 assume ~n <= 0;#res := 1; 727511#factFINAL assume true; 727496#factEXIT >#66#return; 727495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727475#factFINAL assume true; 727462#factEXIT >#66#return; 727465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 727095#factFINAL assume true; 727064#factEXIT >#66#return; 726894#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726798#factFINAL assume true; 726759#factEXIT >#66#return; 726750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726740#factFINAL assume true; 726729#factEXIT >#78#return; 726494#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728384#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728383#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728382#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728381#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 726057#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725068#$Ultimate##0 ~n := #in~n; 726507#L25 assume !(~n <= 0); 726080#L26 call #t~ret0 := fact(~n - 1);< 726093#$Ultimate##0 ~n := #in~n; 726508#L25 assume !(~n <= 0); 726084#L26 call #t~ret0 := fact(~n - 1);< 726096#$Ultimate##0 ~n := #in~n; 726509#L25 assume !(~n <= 0); 726075#L26 call #t~ret0 := fact(~n - 1);< 726101#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726108#factFINAL assume true; 726105#factEXIT >#66#return; 726104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726102#factFINAL assume true; 726098#factEXIT >#66#return; 726100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726517#factFINAL assume true; 726515#factEXIT >#66#return; 726516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726522#factFINAL assume true; 726518#factEXIT >#66#return; 726520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726094#factFINAL assume true; 726095#factEXIT >#66#return; 726069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726071#factFINAL assume true; 726510#factEXIT >#74#return; 725210#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 726118#$Ultimate##0 ~n := #in~n; 726116#L25 assume !(~n <= 0); 726081#L26 call #t~ret0 := fact(~n - 1);< 726115#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726113#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728311#factFINAL assume true; 728302#factEXIT >#76#return; 725170#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 726068#$Ultimate##0 ~n := #in~n; 726111#L25 assume !(~n <= 0); 726074#L26 call #t~ret0 := fact(~n - 1);< 726103#$Ultimate##0 ~n := #in~n; 726120#L25 assume !(~n <= 0); 726088#L26 call #t~ret0 := fact(~n - 1);< 726107#$Ultimate##0 ~n := #in~n; 726125#L25 assume !(~n <= 0); 726076#L26 call #t~ret0 := fact(~n - 1);< 726101#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726128#L25 assume !(~n <= 0); 726078#L26 call #t~ret0 := fact(~n - 1);< 726124#$Ultimate##0 ~n := #in~n; 726127#L25 assume ~n <= 0;#res := 1; 726126#factFINAL assume true; 726123#factEXIT >#66#return; 726121#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726114#factFINAL assume true; 726112#factEXIT >#66#return; 726110#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726108#factFINAL assume true; 726105#factEXIT >#66#return; 726104#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726102#factFINAL assume true; 726098#factEXIT >#66#return; 726100#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726517#factFINAL assume true; 726515#factEXIT >#66#return; 726516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726522#factFINAL assume true; 726518#factEXIT >#66#return; 726520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726094#factFINAL assume true; 726095#factEXIT >#66#return; 726521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728023#factFINAL assume true; 728022#factEXIT >#66#return; 726092#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726097#factFINAL assume true; 726072#factEXIT >#66#return; 726091#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 726511#factFINAL assume true; 726152#factEXIT >#78#return; 725239#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 728378#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 728377#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 728375#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 728373#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 728371#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 728369#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 728368#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 725077#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 725107#$Ultimate##0 ~n := #in~n; 727986#L25 assume !(~n <= 0); 727727#L26 call #t~ret0 := fact(~n - 1);< 727985#$Ultimate##0 ~n := #in~n; 727532#L25 assume !(~n <= 0); 727730#L26 call #t~ret0 := fact(~n - 1);< 728140#$Ultimate##0 ~n := #in~n; 728149#L25 assume ~n <= 0;#res := 1; 728148#factFINAL assume true; 728139#factEXIT >#66#return; 728137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728126#factFINAL assume true; 728114#factEXIT >#66#return; 728112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 728110#factFINAL assume true; 728109#factEXIT >#68#return; 727402#L30-1 [2023-02-17 09:43:29,714 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:29,714 INFO L85 PathProgramCache]: Analyzing trace with hash -1936473700, now seen corresponding path program 49 times [2023-02-17 09:43:29,714 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:29,714 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1807014145] [2023-02-17 09:43:29,714 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:29,715 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:29,741 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:29,741 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1790625237] [2023-02-17 09:43:29,741 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:43:29,741 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:29,741 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:29,744 INFO L229 MonitoredProcess]: Starting monitored process 247 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:29,745 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (247)] Waiting until timeout for monitored process [2023-02-17 09:43:30,902 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:43:30,912 INFO L263 TraceCheckSpWp]: Trace formula consists of 2818 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:43:30,922 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:31,027 INFO L134 CoverageAnalysis]: Checked inductivity of 104736 backedges. 52533 proven. 332 refuted. 0 times theorem prover too weak. 51871 trivial. 0 not checked. [2023-02-17 09:43:31,027 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:31,174 INFO L134 CoverageAnalysis]: Checked inductivity of 104736 backedges. 793 proven. 332 refuted. 0 times theorem prover too weak. 103611 trivial. 0 not checked. [2023-02-17 09:43:31,174 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:31,175 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1807014145] [2023-02-17 09:43:31,175 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:31,175 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1790625237] [2023-02-17 09:43:31,175 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1790625237] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:31,175 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:31,175 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:43:31,175 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [822322649] [2023-02-17 09:43:31,175 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:31,176 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:31,176 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:31,176 INFO L85 PathProgramCache]: Analyzing trace with hash 1954605144, now seen corresponding path program 43 times [2023-02-17 09:43:31,177 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:31,177 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [622911788] [2023-02-17 09:43:31,177 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:31,177 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:31,208 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:31,208 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [757997385] [2023-02-17 09:43:31,208 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:43:31,212 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:31,212 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:31,216 INFO L229 MonitoredProcess]: Starting monitored process 248 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:31,217 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (248)] Waiting until timeout for monitored process [2023-02-17 09:43:32,195 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:43:32,199 INFO L263 TraceCheckSpWp]: Trace formula consists of 1220 conjuncts, 29 conjunts are in the unsatisfiable core [2023-02-17 09:43:32,203 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:32,316 INFO L134 CoverageAnalysis]: Checked inductivity of 20959 backedges. 11397 proven. 440 refuted. 0 times theorem prover too weak. 9122 trivial. 0 not checked. [2023-02-17 09:43:32,317 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:32,606 INFO L134 CoverageAnalysis]: Checked inductivity of 20959 backedges. 1713 proven. 1757 refuted. 0 times theorem prover too weak. 17489 trivial. 0 not checked. [2023-02-17 09:43:32,606 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:32,606 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [622911788] [2023-02-17 09:43:32,606 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:32,606 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [757997385] [2023-02-17 09:43:32,606 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [757997385] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:32,607 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:32,607 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 28] total 31 [2023-02-17 09:43:32,607 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [897223750] [2023-02-17 09:43:32,607 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:32,607 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:32,607 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:32,607 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2023-02-17 09:43:32,608 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=138, Invalid=792, Unknown=0, NotChecked=0, Total=930 [2023-02-17 09:43:32,608 INFO L87 Difference]: Start difference. First operand 3732 states and 7928 transitions. cyclomatic complexity: 4235 Second operand has 31 states, 28 states have (on average 3.25) internal successors, (91), 31 states have internal predecessors, (91), 20 states have call successors, (40), 2 states have call predecessors, (40), 11 states have return successors, (45), 17 states have call predecessors, (45), 20 states have call successors, (45) [2023-02-17 09:43:34,684 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:34,684 INFO L93 Difference]: Finished difference Result 4867 states and 10871 transitions. [2023-02-17 09:43:34,685 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4867 states and 10871 transitions. [2023-02-17 09:43:34,724 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 1244 [2023-02-17 09:43:34,770 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4867 states to 4743 states and 10632 transitions. [2023-02-17 09:43:34,770 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 618 [2023-02-17 09:43:34,771 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 618 [2023-02-17 09:43:34,771 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4743 states and 10632 transitions. [2023-02-17 09:43:34,771 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:34,771 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4743 states and 10632 transitions. [2023-02-17 09:43:34,773 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4743 states and 10632 transitions. [2023-02-17 09:43:34,845 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4743 to 3902. [2023-02-17 09:43:34,849 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3902 states, 2182 states have (on average 1.0439963336388633) internal successors, (2278), 2167 states have internal predecessors, (2278), 1466 states have call successors, (1491), 320 states have call predecessors, (1491), 254 states have return successors, (4689), 1414 states have call predecessors, (4689), 1466 states have call successors, (4689) [2023-02-17 09:43:34,866 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3902 states to 3902 states and 8458 transitions. [2023-02-17 09:43:34,866 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3902 states and 8458 transitions. [2023-02-17 09:43:34,866 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 42 states. [2023-02-17 09:43:34,867 INFO L428 stractBuchiCegarLoop]: Abstraction has 3902 states and 8458 transitions. [2023-02-17 09:43:34,867 INFO L335 stractBuchiCegarLoop]: ======== Iteration 73 ============ [2023-02-17 09:43:34,867 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3902 states and 8458 transitions. [2023-02-17 09:43:34,879 INFO L131 ngComponentsAnalysis]: Automaton has 5 accepting balls. 896 [2023-02-17 09:43:34,879 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:34,879 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:34,883 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [204, 204, 140, 140, 140, 140, 64, 22, 21, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 7, 7, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:34,883 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [96, 96, 72, 72, 72, 72, 24, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:43:34,884 INFO L748 eck$LassoCheckResult]: Stem: 745009#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 744946#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 744947#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 744968#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 745010#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 747725#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747724#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 744938#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 744939#$Ultimate##0 ~n := #in~n; 747871#L25 assume ~n <= 0;#res := 1; 747870#factFINAL assume true; 747867#factEXIT >#68#return; 745000#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745001#$Ultimate##0 ~n := #in~n; 747932#L25 assume ~n <= 0;#res := 1; 747931#factFINAL assume true; 747930#factEXIT >#70#return; 744934#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 744935#$Ultimate##0 ~n := #in~n; 748319#L25 assume ~n <= 0;#res := 1; 748318#factFINAL assume true; 748317#factEXIT >#72#return; 748316#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 748315#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 748314#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 748276#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 748273#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 748232#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 748234#$Ultimate##0 ~n := #in~n; 748251#L25 assume !(~n <= 0); 748252#L26 call #t~ret0 := fact(~n - 1);< 748268#$Ultimate##0 ~n := #in~n; 748264#L25 assume ~n <= 0;#res := 1; 748266#factFINAL assume true; 748282#factEXIT >#66#return; 748281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748280#factFINAL assume true; 748231#factEXIT >#74#return; 748233#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 748275#$Ultimate##0 ~n := #in~n; 748244#L25 assume ~n <= 0;#res := 1; 748245#factFINAL assume true; 748274#factEXIT >#76#return; 748269#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 748271#$Ultimate##0 ~n := #in~n; 748270#L25 assume !(~n <= 0); 748265#L26 call #t~ret0 := fact(~n - 1);< 748268#$Ultimate##0 ~n := #in~n; 748264#L25 assume ~n <= 0;#res := 1; 748266#factFINAL assume true; 748282#factEXIT >#66#return; 748283#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748309#factFINAL assume true; 748306#factEXIT >#78#return; 748304#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 748302#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 748300#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 748298#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 748296#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 748237#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 748253#$Ultimate##0 ~n := #in~n; 748254#L25 assume !(~n <= 0); 748247#L26 call #t~ret0 := fact(~n - 1);< 748250#$Ultimate##0 ~n := #in~n; 748293#L25 assume !(~n <= 0); 748248#L26 call #t~ret0 := fact(~n - 1);< 748288#$Ultimate##0 ~n := #in~n; 748292#L25 assume ~n <= 0;#res := 1; 748290#factFINAL assume true; 748284#factEXIT >#66#return; 748267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748259#factFINAL assume true; 748261#factEXIT >#66#return; 748242#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748235#factFINAL assume true; 748238#factEXIT >#74#return; 748228#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 748230#$Ultimate##0 ~n := #in~n; 748277#L25 assume ~n <= 0;#res := 1; 748278#factFINAL assume true; 748227#factEXIT >#76#return; 748229#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 748279#$Ultimate##0 ~n := #in~n; 748272#L25 assume !(~n <= 0); 748260#L26 call #t~ret0 := fact(~n - 1);< 748262#$Ultimate##0 ~n := #in~n; 748291#L25 assume !(~n <= 0); 748285#L26 call #t~ret0 := fact(~n - 1);< 748289#$Ultimate##0 ~n := #in~n; 748292#L25 assume ~n <= 0;#res := 1; 748290#factFINAL assume true; 748284#factEXIT >#66#return; 748267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748259#factFINAL assume true; 748261#factEXIT >#66#return; 748286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748308#factFINAL assume true; 748307#factEXIT >#78#return; 748305#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 748303#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 748301#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 748299#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 748297#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 748236#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 748253#$Ultimate##0 ~n := #in~n; 748254#L25 assume !(~n <= 0); 748247#L26 call #t~ret0 := fact(~n - 1);< 748250#$Ultimate##0 ~n := #in~n; 748293#L25 assume !(~n <= 0); 748248#L26 call #t~ret0 := fact(~n - 1);< 748288#$Ultimate##0 ~n := #in~n; 748293#L25 assume !(~n <= 0); 748248#L26 call #t~ret0 := fact(~n - 1);< 748288#$Ultimate##0 ~n := #in~n; 748292#L25 assume ~n <= 0;#res := 1; 748290#factFINAL assume true; 748284#factEXIT >#66#return; 748267#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748259#factFINAL assume true; 748261#factEXIT >#66#return; 748287#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748294#factFINAL assume true; 748246#factEXIT >#66#return; 748249#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748310#factFINAL assume true; 748295#factEXIT >#74#return; 748240#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 748257#$Ultimate##0 ~n := #in~n; 748258#L25 assume ~n <= 0;#res := 1; 748239#factFINAL assume true; 748241#factEXIT >#76#return; 745013#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 745014#$Ultimate##0 ~n := #in~n; 748333#L25 assume !(~n <= 0); 748330#L26 call #t~ret0 := fact(~n - 1);< 748332#$Ultimate##0 ~n := #in~n; 748353#L25 assume !(~n <= 0); 748329#L26 call #t~ret0 := fact(~n - 1);< 748337#$Ultimate##0 ~n := #in~n; 748352#L25 assume !(~n <= 0); 748328#L26 call #t~ret0 := fact(~n - 1);< 748347#$Ultimate##0 ~n := #in~n; 748351#L25 assume ~n <= 0;#res := 1; 748349#factFINAL assume true; 748346#factEXIT >#66#return; 748344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748342#factFINAL assume true; 748340#factEXIT >#66#return; 748341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748334#factFINAL assume true; 748335#factEXIT >#66#return; 748325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748324#factFINAL assume true; 748323#factEXIT >#78#return; 744950#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 744951#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 744970#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 748350#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 748348#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 748336#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 748345#$Ultimate##0 ~n := #in~n; 748343#L25 assume !(~n <= 0); 748327#L26 call #t~ret0 := fact(~n - 1);< 748337#$Ultimate##0 ~n := #in~n; 748352#L25 assume !(~n <= 0); 748328#L26 call #t~ret0 := fact(~n - 1);< 748347#$Ultimate##0 ~n := #in~n; 748352#L25 assume !(~n <= 0); 748328#L26 call #t~ret0 := fact(~n - 1);< 748347#$Ultimate##0 ~n := #in~n; 748352#L25 assume !(~n <= 0); 748328#L26 call #t~ret0 := fact(~n - 1);< 748347#$Ultimate##0 ~n := #in~n; 748351#L25 assume ~n <= 0;#res := 1; 748349#factFINAL assume true; 748346#factEXIT >#66#return; 748344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748342#factFINAL assume true; 748340#factEXIT >#66#return; 748341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748334#factFINAL assume true; 748335#factEXIT >#66#return; 748338#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748339#factFINAL assume true; 748326#factEXIT >#66#return; 748331#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748588#factFINAL assume true; 748582#factEXIT >#74#return; 748580#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 748581#$Ultimate##0 ~n := #in~n; 748629#L25 assume ~n <= 0;#res := 1; 748587#factFINAL assume true; 748579#factEXIT >#76#return; 748570#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 748574#$Ultimate##0 ~n := #in~n; 748573#L25 assume !(~n <= 0); 748548#L26 call #t~ret0 := fact(~n - 1);< 748571#$Ultimate##0 ~n := #in~n; 748628#L25 assume !(~n <= 0); 748552#L26 call #t~ret0 := fact(~n - 1);< 748605#$Ultimate##0 ~n := #in~n; 748625#L25 assume !(~n <= 0); 748556#L26 call #t~ret0 := fact(~n - 1);< 748623#$Ultimate##0 ~n := #in~n; 748625#L25 assume !(~n <= 0); 748556#L26 call #t~ret0 := fact(~n - 1);< 748623#$Ultimate##0 ~n := #in~n; 748637#L25 assume ~n <= 0;#res := 1; 748632#factFINAL assume true; 748622#factEXIT >#66#return; 748620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748618#factFINAL assume true; 748604#factEXIT >#66#return; 748598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748596#factFINAL assume true; 748586#factEXIT >#66#return; 748578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748569#factFINAL assume true; 748565#factEXIT >#66#return; 748566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 748747#factFINAL assume true; 748746#factEXIT >#78#return; 748744#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 748743#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 748742#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 748738#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 748735#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745255#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 745256#$Ultimate##0 ~n := #in~n; 745263#L25 assume !(~n <= 0); 745260#L26 call #t~ret0 := fact(~n - 1);< 745261#$Ultimate##0 ~n := #in~n; 745269#L25 assume !(~n <= 0); 745266#L26 call #t~ret0 := fact(~n - 1);< 745267#$Ultimate##0 ~n := #in~n; 745276#L25 assume !(~n <= 0); 745272#L26 call #t~ret0 := fact(~n - 1);< 745274#$Ultimate##0 ~n := #in~n; 745281#L25 assume !(~n <= 0); 745273#L26 call #t~ret0 := fact(~n - 1);< 745279#$Ultimate##0 ~n := #in~n; 745281#L25 assume !(~n <= 0); 745273#L26 call #t~ret0 := fact(~n - 1);< 745279#$Ultimate##0 ~n := #in~n; 745285#L25 assume ~n <= 0;#res := 1; 745284#factFINAL assume true; 745283#factEXIT >#66#return; 745282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745280#factFINAL assume true; 745278#factEXIT >#66#return; 745277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745275#factFINAL assume true; 745271#factEXIT >#66#return; 745270#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745268#factFINAL assume true; 745265#factEXIT >#66#return; 745264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745262#factFINAL assume true; 745259#factEXIT >#66#return; 745258#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745257#factFINAL assume true; 745254#factEXIT >#74#return; 745249#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745250#$Ultimate##0 ~n := #in~n; 745252#L25 assume ~n <= 0;#res := 1; 745251#factFINAL assume true; 745248#factEXIT >#76#return; 744941#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 745167#$Ultimate##0 ~n := #in~n; 745166#L25 assume !(~n <= 0); 745135#L26 call #t~ret0 := fact(~n - 1);< 745163#$Ultimate##0 ~n := #in~n; 745188#L25 assume !(~n <= 0); 745136#L26 call #t~ret0 := fact(~n - 1);< 745174#$Ultimate##0 ~n := #in~n; 745198#L25 assume !(~n <= 0); 745130#L26 call #t~ret0 := fact(~n - 1);< 745185#$Ultimate##0 ~n := #in~n; 745203#L25 assume !(~n <= 0); 745129#L26 call #t~ret0 := fact(~n - 1);< 745150#$Ultimate##0 ~n := #in~n; 745196#L25 assume !(~n <= 0); 745132#L26 call #t~ret0 := fact(~n - 1);< 745200#$Ultimate##0 ~n := #in~n; 745204#L25 assume ~n <= 0;#res := 1; 745202#factFINAL assume true; 745199#factEXIT >#66#return; 745191#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745190#factFINAL assume true; 745189#factEXIT >#66#return; 745187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745186#factFINAL assume true; 745184#factEXIT >#66#return; 745182#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745179#factFINAL assume true; 745173#factEXIT >#66#return; 745168#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745165#factFINAL assume true; 745162#factEXIT >#66#return; 744975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 744940#factFINAL assume true; 744942#factEXIT >#78#return; 745105#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 745104#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 745103#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 745102#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 745101#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 745100#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 745099#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 745098#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745077#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 745094#$Ultimate##0 ~n := #in~n; 745915#L25 assume !(~n <= 0); 745352#L26 call #t~ret0 := fact(~n - 1);< 745914#$Ultimate##0 ~n := #in~n; 747126#L25 assume ~n <= 0;#res := 1; 747125#factFINAL assume true; 747124#factEXIT >#66#return; 747122#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747119#factFINAL assume true; 747117#factEXIT >#68#return; 745081#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745096#$Ultimate##0 ~n := #in~n; 745097#L25 assume ~n <= 0;#res := 1; 745095#factFINAL assume true; 745060#factEXIT >#70#return; 745092#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746615#$Ultimate##0 ~n := #in~n; 747123#L25 assume !(~n <= 0); 744953#L26 call #t~ret0 := fact(~n - 1);< 747121#$Ultimate##0 ~n := #in~n; 747128#L25 assume ~n <= 0;#res := 1; 747127#factFINAL assume true; 747120#factEXIT >#66#return; 747118#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746894#factFINAL assume true; 746614#factEXIT >#72#return; 746600#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 746598#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 746596#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 746594#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 746592#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746588#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746590#$Ultimate##0 ~n := #in~n; 746589#L25 assume !(~n <= 0); 746211#L26 call #t~ret0 := fact(~n - 1);< 746265#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747081#factFINAL assume true; 747077#factEXIT >#68#return; 747078#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 747083#$Ultimate##0 ~n := #in~n; 747087#L25 assume !(~n <= 0); 746219#L26 call #t~ret0 := fact(~n - 1);< 746225#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747081#factFINAL assume true; 747077#factEXIT >#70#return; 746813#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746889#$Ultimate##0 ~n := #in~n; 747080#L25 assume ~n <= 0;#res := 1; 746468#factFINAL assume true; 746808#factEXIT >#72#return; 746806#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 746805#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 746804#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 746803#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 746802#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745722#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 745868#$Ultimate##0 ~n := #in~n; 746469#L25 assume !(~n <= 0); 746179#L26 call #t~ret0 := fact(~n - 1);< 746402#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#74#return; 746105#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746142#$Ultimate##0 ~n := #in~n; 747851#L25 assume !(~n <= 0); 746221#L26 call #t~ret0 := fact(~n - 1);< 746225#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746148#factFINAL assume true; 746090#factEXIT >#76#return; 746103#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746142#$Ultimate##0 ~n := #in~n; 747851#L25 assume !(~n <= 0); 746221#L26 call #t~ret0 := fact(~n - 1);< 746225#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746148#factFINAL assume true; 746090#factEXIT >#78#return; 746141#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 746970#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 746969#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 746771#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 746755#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746001#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746145#$Ultimate##0 ~n := #in~n; 747333#L25 assume !(~n <= 0); 746162#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746547#factFINAL assume true; 746546#factEXIT >#74#return; 746113#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746142#$Ultimate##0 ~n := #in~n; 747851#L25 assume !(~n <= 0); 746221#L26 call #t~ret0 := fact(~n - 1);< 746225#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746148#factFINAL assume true; 746090#factEXIT >#76#return; 746112#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746613#$Ultimate##0 ~n := #in~n; 746573#L25 assume !(~n <= 0); 746222#L26 call #t~ret0 := fact(~n - 1);< 746541#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#78#return; 746599#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 746597#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 746595#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 746593#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 746591#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746023#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746145#$Ultimate##0 ~n := #in~n; 747333#L25 assume !(~n <= 0); 746162#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746144#factFINAL assume true; 745966#factEXIT >#74#return; 746080#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746142#$Ultimate##0 ~n := #in~n; 747851#L25 assume !(~n <= 0); 746221#L26 call #t~ret0 := fact(~n - 1);< 746225#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746148#factFINAL assume true; 746090#factEXIT >#76#return; 746022#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746089#$Ultimate##0 ~n := #in~n; 747290#L25 assume !(~n <= 0); 746178#L26 call #t~ret0 := fact(~n - 1);< 746216#$Ultimate##0 ~n := #in~n; 747431#L25 assume !(~n <= 0); 746208#L26 call #t~ret0 := fact(~n - 1);< 746415#$Ultimate##0 ~n := #in~n; 746587#L25 assume !(~n <= 0); 746408#L26 call #t~ret0 := fact(~n - 1);< 746567#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746547#factFINAL assume true; 746546#factEXIT >#78#return; 746545#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 746543#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 746416#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 746404#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 746229#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745700#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746150#$Ultimate##0 ~n := #in~n; 747412#L25 assume !(~n <= 0); 746394#L26 call #t~ret0 := fact(~n - 1);< 746401#$Ultimate##0 ~n := #in~n; 747259#L25 assume !(~n <= 0); 746186#L26 call #t~ret0 := fact(~n - 1);< 746578#$Ultimate##0 ~n := #in~n; 747563#L25 assume !(~n <= 0); 746188#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746420#factFINAL assume true; 746391#factEXIT >#66#return; 746390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746227#factFINAL assume true; 746149#factEXIT >#74#return; 746118#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746142#$Ultimate##0 ~n := #in~n; 747851#L25 assume !(~n <= 0); 746221#L26 call #t~ret0 := fact(~n - 1);< 746225#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746148#factFINAL assume true; 746090#factEXIT >#76#return; 746033#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746089#$Ultimate##0 ~n := #in~n; 747290#L25 assume !(~n <= 0); 746178#L26 call #t~ret0 := fact(~n - 1);< 746216#$Ultimate##0 ~n := #in~n; 747431#L25 assume !(~n <= 0); 746208#L26 call #t~ret0 := fact(~n - 1);< 746415#$Ultimate##0 ~n := #in~n; 746587#L25 assume !(~n <= 0); 746408#L26 call #t~ret0 := fact(~n - 1);< 746567#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746144#factFINAL assume true; 745966#factEXIT >#78#return; 745964#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 745962#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 745959#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 745954#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 745946#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 744900#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 744901#$Ultimate##0 ~n := #in~n; 745941#L25 assume !(~n <= 0); 745875#L26 call #t~ret0 := fact(~n - 1);< 745929#$Ultimate##0 ~n := #in~n; 745942#L25 assume !(~n <= 0); 745874#L26 call #t~ret0 := fact(~n - 1);< 745927#$Ultimate##0 ~n := #in~n; 745926#L25 assume !(~n <= 0); 745532#L26 call #t~ret0 := fact(~n - 1);< 745882#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745554#factFINAL assume true; 745549#factEXIT >#66#return; 745545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745536#factFINAL assume true; 745523#factEXIT >#66#return; 745534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745936#factFINAL assume true; 745932#factEXIT >#66#return; 745931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745928#factFINAL assume true; 745905#factEXIT >#66#return; 745906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745956#factFINAL assume true; 745955#factEXIT >#74#return; 745003#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745004#$Ultimate##0 ~n := #in~n; 746231#L25 assume !(~n <= 0); 746155#L26 call #t~ret0 := fact(~n - 1);< 746156#$Ultimate##0 ~n := #in~n; 746417#L25 assume ~n <= 0;#res := 1; 746230#factFINAL assume true; 746154#factEXIT >#66#return; 746152#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746151#factFINAL assume true; 746143#factEXIT >#76#return; 745435#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 745930#$Ultimate##0 ~n := #in~n; 745925#L25 assume !(~n <= 0); 745530#L26 call #t~ret0 := fact(~n - 1);< 745555#$Ultimate##0 ~n := #in~n; 745924#L25 assume !(~n <= 0); 745529#L26 call #t~ret0 := fact(~n - 1);< 745882#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745554#factFINAL assume true; 745549#factEXIT >#66#return; 745545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745536#factFINAL assume true; 745523#factEXIT >#66#return; 745534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745936#factFINAL assume true; 745932#factEXIT >#66#return; 745931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745928#factFINAL assume true; 745905#factEXIT >#66#return; 745906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745956#factFINAL assume true; 745955#factEXIT >#78#return; 745499#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747654#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747650#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747649#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 747648#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 747646#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 747645#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747114#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745380#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 744937#$Ultimate##0 ~n := #in~n; 745386#L25 assume !(~n <= 0); 745348#L26 call #t~ret0 := fact(~n - 1);< 745384#$Ultimate##0 ~n := #in~n; 745521#L25 assume !(~n <= 0); 745353#L26 call #t~ret0 := fact(~n - 1);< 745512#$Ultimate##0 ~n := #in~n; 745546#L25 assume ~n <= 0;#res := 1; 745520#factFINAL assume true; 745511#factEXIT >#66#return; 745510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745507#factFINAL assume true; 745408#factEXIT >#66#return; 745409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747133#factFINAL assume true; 747106#factEXIT >#68#return; 745063#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745096#$Ultimate##0 ~n := #in~n; 745097#L25 assume ~n <= 0;#res := 1; 745095#factFINAL assume true; 745060#factEXIT >#70#return; 745085#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 747105#$Ultimate##0 ~n := #in~n; 747113#L25 assume !(~n <= 0); 744954#L26 call #t~ret0 := fact(~n - 1);< 746549#$Ultimate##0 ~n := #in~n; 746419#L25 assume !(~n <= 0); 744952#L26 call #t~ret0 := fact(~n - 1);< 744957#$Ultimate##0 ~n := #in~n; 747142#L25 assume ~n <= 0;#res := 1; 747140#factFINAL assume true; 747130#factEXIT >#66#return; 747129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747115#factFINAL assume true; 747109#factEXIT >#66#return; 747108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747107#factFINAL assume true; 747102#factEXIT >#72#return; 747103#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747214#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 747212#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747210#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747208#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746474#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746572#$Ultimate##0 ~n := #in~n; 746564#L25 assume !(~n <= 0); 746204#L26 call #t~ret0 := fact(~n - 1);< 746415#$Ultimate##0 ~n := #in~n; 746587#L25 assume !(~n <= 0); 746408#L26 call #t~ret0 := fact(~n - 1);< 746567#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747146#factFINAL assume true; 747007#factEXIT >#68#return; 746743#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746964#$Ultimate##0 ~n := #in~n; 746963#L25 assume !(~n <= 0); 746185#L26 call #t~ret0 := fact(~n - 1);< 746617#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747081#factFINAL assume true; 747077#factEXIT >#70#return; 746313#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 747076#$Ultimate##0 ~n := #in~n; 747320#L25 assume !(~n <= 0); 746220#L26 call #t~ret0 := fact(~n - 1);< 746225#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747098#factFINAL assume true; 747074#factEXIT >#72#return; 747075#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747215#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 747213#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747211#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747209#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746475#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746572#$Ultimate##0 ~n := #in~n; 746564#L25 assume !(~n <= 0); 746204#L26 call #t~ret0 := fact(~n - 1);< 746415#$Ultimate##0 ~n := #in~n; 746587#L25 assume !(~n <= 0); 746408#L26 call #t~ret0 := fact(~n - 1);< 746567#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747146#factFINAL assume true; 747007#factEXIT >#68#return; 746752#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746964#$Ultimate##0 ~n := #in~n; 746963#L25 assume !(~n <= 0); 746185#L26 call #t~ret0 := fact(~n - 1);< 746617#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747146#factFINAL assume true; 747007#factEXIT >#70#return; 746322#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 747076#$Ultimate##0 ~n := #in~n; 747320#L25 assume ~n <= 0;#res := 1; 746468#factFINAL assume true; 746808#factEXIT >#72#return; 746887#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747899#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 747898#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747896#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747294#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746063#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746145#$Ultimate##0 ~n := #in~n; 747333#L25 assume !(~n <= 0); 746162#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746547#factFINAL assume true; 746546#factEXIT >#74#return; 746062#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746548#$Ultimate##0 ~n := #in~n; 747561#L25 assume !(~n <= 0); 746184#L26 call #t~ret0 := fact(~n - 1);< 746428#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 746117#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746613#$Ultimate##0 ~n := #in~n; 746573#L25 assume !(~n <= 0); 746222#L26 call #t~ret0 := fact(~n - 1);< 746541#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746148#factFINAL assume true; 746090#factEXIT >#78#return; 746140#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747814#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747813#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747812#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747804#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745972#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746145#$Ultimate##0 ~n := #in~n; 747333#L25 assume !(~n <= 0); 746162#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746144#factFINAL assume true; 745966#factEXIT >#74#return; 745971#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746548#$Ultimate##0 ~n := #in~n; 747561#L25 assume !(~n <= 0); 746184#L26 call #t~ret0 := fact(~n - 1);< 746428#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 746093#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746613#$Ultimate##0 ~n := #in~n; 746573#L25 assume !(~n <= 0); 746222#L26 call #t~ret0 := fact(~n - 1);< 746541#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#78#return; 746605#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747329#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747330#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747323#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747324#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745563#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746150#$Ultimate##0 ~n := #in~n; 747412#L25 assume !(~n <= 0); 746394#L26 call #t~ret0 := fact(~n - 1);< 746401#$Ultimate##0 ~n := #in~n; 747259#L25 assume !(~n <= 0); 746186#L26 call #t~ret0 := fact(~n - 1);< 746578#$Ultimate##0 ~n := #in~n; 747563#L25 assume !(~n <= 0); 746188#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746420#factFINAL assume true; 746391#factEXIT >#66#return; 746390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746227#factFINAL assume true; 746149#factEXIT >#74#return; 745969#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746548#$Ultimate##0 ~n := #in~n; 747561#L25 assume !(~n <= 0); 746184#L26 call #t~ret0 := fact(~n - 1);< 746428#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 745981#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746089#$Ultimate##0 ~n := #in~n; 747290#L25 assume !(~n <= 0); 746178#L26 call #t~ret0 := fact(~n - 1);< 746216#$Ultimate##0 ~n := #in~n; 747431#L25 assume !(~n <= 0); 746208#L26 call #t~ret0 := fact(~n - 1);< 746415#$Ultimate##0 ~n := #in~n; 746587#L25 assume !(~n <= 0); 746408#L26 call #t~ret0 := fact(~n - 1);< 746567#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746547#factFINAL assume true; 746546#factEXIT >#78#return; 746069#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747802#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747801#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747800#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747799#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745568#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746150#$Ultimate##0 ~n := #in~n; 747412#L25 assume !(~n <= 0); 746394#L26 call #t~ret0 := fact(~n - 1);< 746401#$Ultimate##0 ~n := #in~n; 747259#L25 assume !(~n <= 0); 746186#L26 call #t~ret0 := fact(~n - 1);< 746578#$Ultimate##0 ~n := #in~n; 747563#L25 assume !(~n <= 0); 746188#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746420#factFINAL assume true; 746391#factEXIT >#66#return; 746390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746227#factFINAL assume true; 746149#factEXIT >#74#return; 745984#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746548#$Ultimate##0 ~n := #in~n; 747561#L25 assume !(~n <= 0); 746184#L26 call #t~ret0 := fact(~n - 1);< 746428#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 745986#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746089#$Ultimate##0 ~n := #in~n; 747290#L25 assume !(~n <= 0); 746178#L26 call #t~ret0 := fact(~n - 1);< 746216#$Ultimate##0 ~n := #in~n; 747431#L25 assume !(~n <= 0); 746208#L26 call #t~ret0 := fact(~n - 1);< 746415#$Ultimate##0 ~n := #in~n; 746587#L25 assume !(~n <= 0); 746408#L26 call #t~ret0 := fact(~n - 1);< 746567#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746144#factFINAL assume true; 745966#factEXIT >#78#return; 745858#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747773#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747772#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747714#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747708#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745465#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 744901#$Ultimate##0 ~n := #in~n; 745941#L25 assume !(~n <= 0); 745875#L26 call #t~ret0 := fact(~n - 1);< 745929#$Ultimate##0 ~n := #in~n; 745942#L25 assume !(~n <= 0); 745874#L26 call #t~ret0 := fact(~n - 1);< 745927#$Ultimate##0 ~n := #in~n; 745926#L25 assume !(~n <= 0); 745532#L26 call #t~ret0 := fact(~n - 1);< 745882#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745554#factFINAL assume true; 745549#factEXIT >#66#return; 745545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745536#factFINAL assume true; 745523#factEXIT >#66#return; 745534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745936#factFINAL assume true; 745932#factEXIT >#66#return; 745931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745928#factFINAL assume true; 745905#factEXIT >#66#return; 745904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745901#factFINAL assume true; 745898#factEXIT >#66#return; 745899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746575#factFINAL assume true; 745411#factEXIT >#74#return; 745473#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745893#$Ultimate##0 ~n := #in~n; 745888#L25 assume !(~n <= 0); 745525#L26 call #t~ret0 := fact(~n - 1);< 745886#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745950#factFINAL assume true; 745948#factEXIT >#76#return; 745496#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 745509#$Ultimate##0 ~n := #in~n; 745870#L25 assume !(~n <= 0); 745527#L26 call #t~ret0 := fact(~n - 1);< 745535#$Ultimate##0 ~n := #in~n; 745913#L25 assume !(~n <= 0); 745528#L26 call #t~ret0 := fact(~n - 1);< 745551#$Ultimate##0 ~n := #in~n; 745924#L25 assume !(~n <= 0); 745529#L26 call #t~ret0 := fact(~n - 1);< 745882#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745554#factFINAL assume true; 745549#factEXIT >#66#return; 745545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745536#factFINAL assume true; 745523#factEXIT >#66#return; 745534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745936#factFINAL assume true; 745932#factEXIT >#66#return; 745931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745928#factFINAL assume true; 745905#factEXIT >#66#return; 745906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745956#factFINAL assume true; 745955#factEXIT >#78#return; 745503#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747707#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747706#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747705#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 747704#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 747703#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 747702#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747701#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745382#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 744937#$Ultimate##0 ~n := #in~n; 745386#L25 assume !(~n <= 0); 745348#L26 call #t~ret0 := fact(~n - 1);< 745384#$Ultimate##0 ~n := #in~n; 745521#L25 assume !(~n <= 0); 745353#L26 call #t~ret0 := fact(~n - 1);< 745512#$Ultimate##0 ~n := #in~n; 745521#L25 assume !(~n <= 0); 745353#L26 call #t~ret0 := fact(~n - 1);< 745512#$Ultimate##0 ~n := #in~n; 745546#L25 assume ~n <= 0;#res := 1; 745520#factFINAL assume true; 745511#factEXIT >#66#return; 745510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745507#factFINAL assume true; 745408#factEXIT >#66#return; 745406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745403#factFINAL assume true; 745398#factEXIT >#66#return; 745399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747260#factFINAL assume true; 747251#factEXIT >#68#return; 745076#L30-1 [2023-02-17 09:43:34,884 INFO L750 eck$LassoCheckResult]: Loop: 745076#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745096#$Ultimate##0 ~n := #in~n; 745097#L25 assume ~n <= 0;#res := 1; 745095#factFINAL assume true; 745060#factEXIT >#70#return; 745027#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 747169#$Ultimate##0 ~n := #in~n; 747167#L25 assume !(~n <= 0); 747158#L26 call #t~ret0 := fact(~n - 1);< 747164#$Ultimate##0 ~n := #in~n; 747162#L25 assume !(~n <= 0); 747111#L26 call #t~ret0 := fact(~n - 1);< 747156#$Ultimate##0 ~n := #in~n; 747153#L25 assume !(~n <= 0); 747110#L26 call #t~ret0 := fact(~n - 1);< 747131#$Ultimate##0 ~n := #in~n; 747315#L25 assume !(~n <= 0); 744955#L26 call #t~ret0 := fact(~n - 1);< 747144#$Ultimate##0 ~n := #in~n; 746419#L25 assume !(~n <= 0); 744952#L26 call #t~ret0 := fact(~n - 1);< 744957#$Ultimate##0 ~n := #in~n; 747142#L25 assume ~n <= 0;#res := 1; 747140#factFINAL assume true; 747130#factEXIT >#66#return; 747129#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747115#factFINAL assume true; 747109#factEXIT >#66#return; 747112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747552#factFINAL assume true; 747550#factEXIT >#66#return; 747548#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747547#factFINAL assume true; 747503#factEXIT >#66#return; 747501#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747498#factFINAL assume true; 747492#factEXIT >#66#return; 747491#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747489#factFINAL assume true; 747457#factEXIT >#72#return; 747461#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747723#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 747722#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747721#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747720#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746234#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 747063#$Ultimate##0 ~n := #in~n; 747856#L25 assume !(~n <= 0); 746205#L26 call #t~ret0 := fact(~n - 1);< 746215#$Ultimate##0 ~n := #in~n; 747544#L25 assume !(~n <= 0); 746407#L26 call #t~ret0 := fact(~n - 1);< 746413#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747147#factFINAL assume true; 747062#factEXIT >#68#return; 746750#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746964#$Ultimate##0 ~n := #in~n; 746963#L25 assume !(~n <= 0); 746185#L26 call #t~ret0 := fact(~n - 1);< 746617#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746224#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747081#factFINAL assume true; 747077#factEXIT >#70#return; 746483#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 747005#$Ultimate##0 ~n := #in~n; 747868#L25 assume !(~n <= 0); 746218#L26 call #t~ret0 := fact(~n - 1);< 746541#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747098#factFINAL assume true; 747074#factEXIT >#72#return; 747072#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747070#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 747068#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747066#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747064#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 746235#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 747063#$Ultimate##0 ~n := #in~n; 747856#L25 assume !(~n <= 0); 746205#L26 call #t~ret0 := fact(~n - 1);< 746215#$Ultimate##0 ~n := #in~n; 747544#L25 assume !(~n <= 0); 746407#L26 call #t~ret0 := fact(~n - 1);< 746413#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747147#factFINAL assume true; 747062#factEXIT >#68#return; 746642#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746964#$Ultimate##0 ~n := #in~n; 746963#L25 assume !(~n <= 0); 746185#L26 call #t~ret0 := fact(~n - 1);< 746617#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746409#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747146#factFINAL assume true; 747007#factEXIT >#70#return; 746526#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 747005#$Ultimate##0 ~n := #in~n; 747868#L25 assume ~n <= 0;#res := 1; 746468#factFINAL assume true; 746808#factEXIT >#72#return; 746831#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747004#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 747002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747000#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 746998#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745657#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746196#$Ultimate##0 ~n := #in~n; 746965#L25 assume !(~n <= 0); 746158#L26 call #t~ret0 := fact(~n - 1);< 746769#$Ultimate##0 ~n := #in~n; 746979#L25 assume !(~n <= 0); 746159#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746547#factFINAL assume true; 746546#factEXIT >#74#return; 746018#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746548#$Ultimate##0 ~n := #in~n; 747561#L25 assume !(~n <= 0); 746184#L26 call #t~ret0 := fact(~n - 1);< 746428#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 746109#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746613#$Ultimate##0 ~n := #in~n; 746573#L25 assume !(~n <= 0); 746222#L26 call #t~ret0 := fact(~n - 1);< 746541#$Ultimate##0 ~n := #in~n; 746418#L25 assume ~n <= 0;#res := 1; 746268#factFINAL assume true; 746217#factEXIT >#66#return; 746202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746148#factFINAL assume true; 746090#factEXIT >#78#return; 746128#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747311#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747310#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747309#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747307#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745720#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746196#$Ultimate##0 ~n := #in~n; 746965#L25 assume !(~n <= 0); 746158#L26 call #t~ret0 := fact(~n - 1);< 746769#$Ultimate##0 ~n := #in~n; 746979#L25 assume !(~n <= 0); 746159#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746144#factFINAL assume true; 745966#factEXIT >#74#return; 746040#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746548#$Ultimate##0 ~n := #in~n; 747561#L25 assume !(~n <= 0); 746184#L26 call #t~ret0 := fact(~n - 1);< 746428#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 746101#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746613#$Ultimate##0 ~n := #in~n; 746573#L25 assume !(~n <= 0); 746222#L26 call #t~ret0 := fact(~n - 1);< 746541#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#78#return; 746611#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747303#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747302#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747301#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747300#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745826#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746150#$Ultimate##0 ~n := #in~n; 747412#L25 assume !(~n <= 0); 746394#L26 call #t~ret0 := fact(~n - 1);< 746401#$Ultimate##0 ~n := #in~n; 747259#L25 assume !(~n <= 0); 746186#L26 call #t~ret0 := fact(~n - 1);< 746578#$Ultimate##0 ~n := #in~n; 747563#L25 assume !(~n <= 0); 746188#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746420#factFINAL assume true; 746391#factEXIT >#66#return; 746390#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746227#factFINAL assume true; 746149#factEXIT >#74#return; 746056#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746548#$Ultimate##0 ~n := #in~n; 747561#L25 assume !(~n <= 0); 746184#L26 call #t~ret0 := fact(~n - 1);< 746428#$Ultimate##0 ~n := #in~n; 746616#L25 assume !(~n <= 0); 746161#L26 call #t~ret0 := fact(~n - 1);< 746569#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 745975#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746089#$Ultimate##0 ~n := #in~n; 747290#L25 assume !(~n <= 0); 746178#L26 call #t~ret0 := fact(~n - 1);< 746216#$Ultimate##0 ~n := #in~n; 747431#L25 assume !(~n <= 0); 746208#L26 call #t~ret0 := fact(~n - 1);< 746415#$Ultimate##0 ~n := #in~n; 746587#L25 assume !(~n <= 0); 746408#L26 call #t~ret0 := fact(~n - 1);< 746567#$Ultimate##0 ~n := #in~n; 746574#L25 assume !(~n <= 0); 746566#L26 call #t~ret0 := fact(~n - 1);< 746570#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746144#factFINAL assume true; 745966#factEXIT >#78#return; 746066#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747295#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747293#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747292#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747291#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745631#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 746150#$Ultimate##0 ~n := #in~n; 747412#L25 assume !(~n <= 0); 746394#L26 call #t~ret0 := fact(~n - 1);< 746401#$Ultimate##0 ~n := #in~n; 747259#L25 assume !(~n <= 0); 746186#L26 call #t~ret0 := fact(~n - 1);< 746578#$Ultimate##0 ~n := #in~n; 747563#L25 assume !(~n <= 0); 746188#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746190#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746420#factFINAL assume true; 746391#factEXIT >#66#return; 746396#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746780#factFINAL assume true; 746774#factEXIT >#66#return; 746773#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746579#factFINAL assume true; 746577#factEXIT >#74#return; 745667#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 746580#$Ultimate##0 ~n := #in~n; 746967#L25 assume !(~n <= 0); 746182#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746412#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746892#factFINAL assume true; 746601#factEXIT >#76#return; 745708#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 746196#$Ultimate##0 ~n := #in~n; 746965#L25 assume !(~n <= 0); 746158#L26 call #t~ret0 := fact(~n - 1);< 746769#$Ultimate##0 ~n := #in~n; 746979#L25 assume !(~n <= 0); 746159#L26 call #t~ret0 := fact(~n - 1);< 746429#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746981#L25 assume !(~n <= 0); 746177#L26 call #t~ret0 := fact(~n - 1);< 746792#$Ultimate##0 ~n := #in~n; 746893#L25 assume ~n <= 0;#res := 1; 746586#factFINAL assume true; 746565#factEXIT >#66#return; 746563#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746470#factFINAL assume true; 746405#factEXIT >#66#return; 746403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746232#factFINAL assume true; 746203#factEXIT >#66#return; 746201#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746197#factFINAL assume true; 746157#factEXIT >#66#return; 746153#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 746144#factFINAL assume true; 745966#factEXIT >#78#return; 745848#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747328#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747325#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747319#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 745960#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745494#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 744901#$Ultimate##0 ~n := #in~n; 745941#L25 assume !(~n <= 0); 745875#L26 call #t~ret0 := fact(~n - 1);< 745929#$Ultimate##0 ~n := #in~n; 745942#L25 assume !(~n <= 0); 745874#L26 call #t~ret0 := fact(~n - 1);< 745927#$Ultimate##0 ~n := #in~n; 745926#L25 assume !(~n <= 0); 745532#L26 call #t~ret0 := fact(~n - 1);< 745882#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745554#factFINAL assume true; 745549#factEXIT >#66#return; 745545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745536#factFINAL assume true; 745523#factEXIT >#66#return; 745534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745936#factFINAL assume true; 745932#factEXIT >#66#return; 745931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745928#factFINAL assume true; 745905#factEXIT >#66#return; 745906#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745956#factFINAL assume true; 745955#factEXIT >#74#return; 745449#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 745893#$Ultimate##0 ~n := #in~n; 745888#L25 assume !(~n <= 0); 745525#L26 call #t~ret0 := fact(~n - 1);< 745886#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745881#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745950#factFINAL assume true; 745948#factEXIT >#76#return; 745440#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 745930#$Ultimate##0 ~n := #in~n; 745925#L25 assume !(~n <= 0); 745530#L26 call #t~ret0 := fact(~n - 1);< 745555#$Ultimate##0 ~n := #in~n; 745924#L25 assume !(~n <= 0); 745529#L26 call #t~ret0 := fact(~n - 1);< 745882#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745897#L25 assume !(~n <= 0); 745526#L26 call #t~ret0 := fact(~n - 1);< 745892#$Ultimate##0 ~n := #in~n; 745900#L25 assume ~n <= 0;#res := 1; 745896#factFINAL assume true; 745891#factEXIT >#66#return; 745887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745885#factFINAL assume true; 745880#factEXIT >#66#return; 745869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745554#factFINAL assume true; 745549#factEXIT >#66#return; 745545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745536#factFINAL assume true; 745523#factEXIT >#66#return; 745534#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745936#factFINAL assume true; 745932#factEXIT >#66#return; 745931#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745928#factFINAL assume true; 745905#factEXIT >#66#return; 745904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745901#factFINAL assume true; 745898#factEXIT >#66#return; 745895#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745894#factFINAL assume true; 745889#factEXIT >#66#return; 745878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745883#factFINAL assume true; 745871#factEXIT >#66#return; 745556#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745552#factFINAL assume true; 745547#factEXIT >#78#return; 745501#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 747258#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 747257#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 747256#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 747255#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 747254#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 747253#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 747252#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 745296#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 745298#$Ultimate##0 ~n := #in~n; 745363#L25 assume !(~n <= 0); 745346#L26 call #t~ret0 := fact(~n - 1);< 745374#$Ultimate##0 ~n := #in~n; 745909#L25 assume !(~n <= 0); 745350#L26 call #t~ret0 := fact(~n - 1);< 745410#$Ultimate##0 ~n := #in~n; 745521#L25 assume !(~n <= 0); 745353#L26 call #t~ret0 := fact(~n - 1);< 745512#$Ultimate##0 ~n := #in~n; 745546#L25 assume ~n <= 0;#res := 1; 745520#factFINAL assume true; 745511#factEXIT >#66#return; 745510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745507#factFINAL assume true; 745408#factEXIT >#66#return; 745406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 745403#factFINAL assume true; 745398#factEXIT >#66#return; 745399#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 747260#factFINAL assume true; 747251#factEXIT >#68#return; 745076#L30-1 [2023-02-17 09:43:34,884 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:34,884 INFO L85 PathProgramCache]: Analyzing trace with hash 1342048804, now seen corresponding path program 50 times [2023-02-17 09:43:34,885 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:34,885 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [837482764] [2023-02-17 09:43:34,885 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:34,885 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:34,912 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:34,912 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [752098003] [2023-02-17 09:43:34,913 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:43:34,913 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:34,913 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:34,915 INFO L229 MonitoredProcess]: Starting monitored process 249 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:34,916 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (249)] Waiting until timeout for monitored process [2023-02-17 09:43:36,091 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:43:36,091 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:36,101 INFO L263 TraceCheckSpWp]: Trace formula consists of 2806 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:43:36,108 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:36,197 INFO L134 CoverageAnalysis]: Checked inductivity of 103640 backedges. 52017 proven. 332 refuted. 0 times theorem prover too weak. 51291 trivial. 0 not checked. [2023-02-17 09:43:36,197 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:36,308 INFO L134 CoverageAnalysis]: Checked inductivity of 103640 backedges. 793 proven. 332 refuted. 0 times theorem prover too weak. 102515 trivial. 0 not checked. [2023-02-17 09:43:36,308 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:36,308 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [837482764] [2023-02-17 09:43:36,308 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:36,308 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [752098003] [2023-02-17 09:43:36,308 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [752098003] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:36,308 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:36,309 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:43:36,309 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [521489790] [2023-02-17 09:43:36,309 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:36,309 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:36,309 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:36,309 INFO L85 PathProgramCache]: Analyzing trace with hash -739611424, now seen corresponding path program 44 times [2023-02-17 09:43:36,310 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:36,310 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [667947297] [2023-02-17 09:43:36,310 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:36,310 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:36,329 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:36,329 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [354384077] [2023-02-17 09:43:36,329 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:43:36,330 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:36,330 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:36,332 INFO L229 MonitoredProcess]: Starting monitored process 250 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:36,335 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (250)] Waiting until timeout for monitored process [2023-02-17 09:43:37,471 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:43:37,471 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:37,475 INFO L263 TraceCheckSpWp]: Trace formula consists of 1280 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:43:37,478 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:37,513 INFO L134 CoverageAnalysis]: Checked inductivity of 23509 backedges. 6360 proven. 59 refuted. 0 times theorem prover too weak. 17090 trivial. 0 not checked. [2023-02-17 09:43:37,513 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:37,613 INFO L134 CoverageAnalysis]: Checked inductivity of 23509 backedges. 260 proven. 2388 refuted. 0 times theorem prover too weak. 20861 trivial. 0 not checked. [2023-02-17 09:43:37,613 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:37,613 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [667947297] [2023-02-17 09:43:37,613 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:37,613 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [354384077] [2023-02-17 09:43:37,613 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [354384077] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:37,613 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:37,613 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 14] total 17 [2023-02-17 09:43:37,613 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1898553552] [2023-02-17 09:43:37,613 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:37,614 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:37,614 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:37,614 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2023-02-17 09:43:37,614 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=51, Invalid=221, Unknown=0, NotChecked=0, Total=272 [2023-02-17 09:43:37,614 INFO L87 Difference]: Start difference. First operand 3902 states and 8458 transitions. cyclomatic complexity: 4597 Second operand has 17 states, 14 states have (on average 3.642857142857143) internal successors, (51), 14 states have internal predecessors, (51), 11 states have call successors, (26), 2 states have call predecessors, (26), 7 states have return successors, (28), 9 states have call predecessors, (28), 11 states have call successors, (28) [2023-02-17 09:43:37,919 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:37,919 INFO L93 Difference]: Finished difference Result 4019 states and 8613 transitions. [2023-02-17 09:43:37,919 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4019 states and 8613 transitions. [2023-02-17 09:43:37,950 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 824 [2023-02-17 09:43:37,987 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4019 states to 4018 states and 8610 transitions. [2023-02-17 09:43:37,987 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 601 [2023-02-17 09:43:37,988 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 601 [2023-02-17 09:43:37,988 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4018 states and 8610 transitions. [2023-02-17 09:43:37,991 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:37,991 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4018 states and 8610 transitions. [2023-02-17 09:43:37,993 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4018 states and 8610 transitions. [2023-02-17 09:43:38,058 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4018 to 3908. [2023-02-17 09:43:38,062 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3908 states, 2185 states have (on average 1.0439359267734554) internal successors, (2281), 2170 states have internal predecessors, (2281), 1469 states have call successors, (1494), 324 states have call predecessors, (1494), 254 states have return successors, (4700), 1413 states have call predecessors, (4700), 1469 states have call successors, (4700) [2023-02-17 09:43:38,081 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3908 states to 3908 states and 8475 transitions. [2023-02-17 09:43:38,081 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3908 states and 8475 transitions. [2023-02-17 09:43:38,081 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2023-02-17 09:43:38,081 INFO L428 stractBuchiCegarLoop]: Abstraction has 3908 states and 8475 transitions. [2023-02-17 09:43:38,082 INFO L335 stractBuchiCegarLoop]: ======== Iteration 74 ============ [2023-02-17 09:43:38,082 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3908 states and 8475 transitions. [2023-02-17 09:43:38,094 INFO L131 ngComponentsAnalysis]: Automaton has 4 accepting balls. 804 [2023-02-17 09:43:38,094 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:38,094 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:38,098 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [202, 202, 138, 138, 138, 138, 64, 22, 21, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 7, 7, 6, 6, 6, 6, 6, 6, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:38,098 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [89, 89, 65, 65, 65, 65, 24, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1] [2023-02-17 09:43:38,098 INFO L748 eck$LassoCheckResult]: Stem: 764238#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 764160#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 764161#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 764182#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 764239#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 764939#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 764938#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764901#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764902#$Ultimate##0 ~n := #in~n; 764904#L25 assume ~n <= 0;#res := 1; 764903#factFINAL assume true; 764900#factEXIT >#68#return; 764897#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764898#$Ultimate##0 ~n := #in~n; 764906#L25 assume ~n <= 0;#res := 1; 764905#factFINAL assume true; 764896#factEXIT >#70#return; 764891#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 764892#$Ultimate##0 ~n := #in~n; 764910#L25 assume ~n <= 0;#res := 1; 764909#factFINAL assume true; 764890#factEXIT >#72#return; 764888#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 764887#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 764886#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 764884#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 764881#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764877#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764880#$Ultimate##0 ~n := #in~n; 764878#L25 assume !(~n <= 0); 764871#L26 call #t~ret0 := fact(~n - 1);< 764874#$Ultimate##0 ~n := #in~n; 764879#L25 assume ~n <= 0;#res := 1; 764876#factFINAL assume true; 764870#factEXIT >#66#return; 764873#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764945#factFINAL assume true; 764937#factEXIT >#74#return; 764860#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764861#$Ultimate##0 ~n := #in~n; 764864#L25 assume ~n <= 0;#res := 1; 764863#factFINAL assume true; 764859#factEXIT >#76#return; 764856#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 764857#$Ultimate##0 ~n := #in~n; 764875#L25 assume !(~n <= 0); 764872#L26 call #t~ret0 := fact(~n - 1);< 764874#$Ultimate##0 ~n := #in~n; 764879#L25 assume ~n <= 0;#res := 1; 764876#factFINAL assume true; 764870#factEXIT >#66#return; 764869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764868#factFINAL assume true; 764855#factEXIT >#78#return; 764853#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 764852#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 764851#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 764850#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 764847#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764783#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764785#$Ultimate##0 ~n := #in~n; 764831#L25 assume !(~n <= 0); 764825#L26 call #t~ret0 := fact(~n - 1);< 764827#$Ultimate##0 ~n := #in~n; 764915#L25 assume !(~n <= 0); 764826#L26 call #t~ret0 := fact(~n - 1);< 764844#$Ultimate##0 ~n := #in~n; 764908#L25 assume ~n <= 0;#res := 1; 764907#factFINAL assume true; 764893#factEXIT >#66#return; 764889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764882#factFINAL assume true; 764840#factEXIT >#66#return; 764842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764919#factFINAL assume true; 764917#factEXIT >#74#return; 764913#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764914#$Ultimate##0 ~n := #in~n; 764918#L25 assume ~n <= 0;#res := 1; 764916#factFINAL assume true; 764912#factEXIT >#76#return; 764838#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 764839#$Ultimate##0 ~n := #in~n; 764885#L25 assume !(~n <= 0); 764841#L26 call #t~ret0 := fact(~n - 1);< 764883#$Ultimate##0 ~n := #in~n; 764899#L25 assume !(~n <= 0); 764894#L26 call #t~ret0 := fact(~n - 1);< 764895#$Ultimate##0 ~n := #in~n; 764908#L25 assume ~n <= 0;#res := 1; 764907#factFINAL assume true; 764893#factEXIT >#66#return; 764889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764882#factFINAL assume true; 764840#factEXIT >#66#return; 764843#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764911#factFINAL assume true; 764837#factEXIT >#78#return; 764835#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 764834#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 764829#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 764823#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 764820#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764784#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764785#$Ultimate##0 ~n := #in~n; 764831#L25 assume !(~n <= 0); 764825#L26 call #t~ret0 := fact(~n - 1);< 764827#$Ultimate##0 ~n := #in~n; 764915#L25 assume !(~n <= 0); 764826#L26 call #t~ret0 := fact(~n - 1);< 764844#$Ultimate##0 ~n := #in~n; 764915#L25 assume !(~n <= 0); 764826#L26 call #t~ret0 := fact(~n - 1);< 764844#$Ultimate##0 ~n := #in~n; 764908#L25 assume ~n <= 0;#res := 1; 764907#factFINAL assume true; 764893#factEXIT >#66#return; 764889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764882#factFINAL assume true; 764840#factEXIT >#66#return; 764836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764830#factFINAL assume true; 764824#factEXIT >#66#return; 764821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764819#factFINAL assume true; 764782#factEXIT >#74#return; 764779#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764780#$Ultimate##0 ~n := #in~n; 764805#L25 assume ~n <= 0;#res := 1; 764802#factFINAL assume true; 764778#factEXIT >#76#return; 764771#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 764776#$Ultimate##0 ~n := #in~n; 764775#L25 assume !(~n <= 0); 764763#L26 call #t~ret0 := fact(~n - 1);< 764772#$Ultimate##0 ~n := #in~n; 764921#L25 assume !(~n <= 0); 764766#L26 call #t~ret0 := fact(~n - 1);< 764768#$Ultimate##0 ~n := #in~n; 764806#L25 assume !(~n <= 0); 764764#L26 call #t~ret0 := fact(~n - 1);< 764804#$Ultimate##0 ~n := #in~n; 764810#L25 assume ~n <= 0;#res := 1; 764808#factFINAL assume true; 764803#factEXIT >#66#return; 764801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764800#factFINAL assume true; 764799#factEXIT >#66#return; 764797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764795#factFINAL assume true; 764793#factEXIT >#66#return; 764767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764817#factFINAL assume true; 764814#factEXIT >#78#return; 764813#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 764812#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 764811#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 764809#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 764807#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764756#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764757#$Ultimate##0 ~n := #in~n; 764769#L25 assume !(~n <= 0); 764765#L26 call #t~ret0 := fact(~n - 1);< 764768#$Ultimate##0 ~n := #in~n; 764806#L25 assume !(~n <= 0); 764764#L26 call #t~ret0 := fact(~n - 1);< 764804#$Ultimate##0 ~n := #in~n; 764806#L25 assume !(~n <= 0); 764764#L26 call #t~ret0 := fact(~n - 1);< 764804#$Ultimate##0 ~n := #in~n; 764806#L25 assume !(~n <= 0); 764764#L26 call #t~ret0 := fact(~n - 1);< 764804#$Ultimate##0 ~n := #in~n; 764810#L25 assume ~n <= 0;#res := 1; 764808#factFINAL assume true; 764803#factEXIT >#66#return; 764801#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764800#factFINAL assume true; 764799#factEXIT >#66#return; 764797#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764795#factFINAL assume true; 764793#factEXIT >#66#return; 764790#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764770#factFINAL assume true; 764762#factEXIT >#66#return; 764760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764758#factFINAL assume true; 764755#factEXIT >#74#return; 764753#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764754#$Ultimate##0 ~n := #in~n; 764761#L25 assume ~n <= 0;#res := 1; 764759#factFINAL assume true; 764752#factEXIT >#76#return; 764735#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 764739#$Ultimate##0 ~n := #in~n; 764737#L25 assume !(~n <= 0); 764707#L26 call #t~ret0 := fact(~n - 1);< 764736#$Ultimate##0 ~n := #in~n; 764796#L25 assume !(~n <= 0); 764711#L26 call #t~ret0 := fact(~n - 1);< 764751#$Ultimate##0 ~n := #in~n; 764818#L25 assume !(~n <= 0); 764715#L26 call #t~ret0 := fact(~n - 1);< 764792#$Ultimate##0 ~n := #in~n; 764818#L25 assume !(~n <= 0); 764715#L26 call #t~ret0 := fact(~n - 1);< 764792#$Ultimate##0 ~n := #in~n; 764816#L25 assume ~n <= 0;#res := 1; 764815#factFINAL assume true; 764791#factEXIT >#66#return; 764789#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764788#factFINAL assume true; 764750#factEXIT >#66#return; 764749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764748#factFINAL assume true; 764740#factEXIT >#66#return; 764738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764734#factFINAL assume true; 764723#factEXIT >#66#return; 764724#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764990#factFINAL assume true; 764988#factEXIT >#78#return; 764989#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 764529#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 764530#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 764515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 764516#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764460#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764461#$Ultimate##0 ~n := #in~n; 764470#L25 assume !(~n <= 0); 764467#L26 call #t~ret0 := fact(~n - 1);< 764468#$Ultimate##0 ~n := #in~n; 764476#L25 assume !(~n <= 0); 764473#L26 call #t~ret0 := fact(~n - 1);< 764474#$Ultimate##0 ~n := #in~n; 764483#L25 assume !(~n <= 0); 764479#L26 call #t~ret0 := fact(~n - 1);< 764481#$Ultimate##0 ~n := #in~n; 764488#L25 assume !(~n <= 0); 764480#L26 call #t~ret0 := fact(~n - 1);< 764486#$Ultimate##0 ~n := #in~n; 764488#L25 assume !(~n <= 0); 764480#L26 call #t~ret0 := fact(~n - 1);< 764486#$Ultimate##0 ~n := #in~n; 764498#L25 assume ~n <= 0;#res := 1; 764494#factFINAL assume true; 764490#factEXIT >#66#return; 764489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764487#factFINAL assume true; 764485#factEXIT >#66#return; 764484#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764482#factFINAL assume true; 764478#factEXIT >#66#return; 764477#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764475#factFINAL assume true; 764472#factEXIT >#66#return; 764471#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764469#factFINAL assume true; 764466#factEXIT >#66#return; 764465#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764462#factFINAL assume true; 764459#factEXIT >#74#return; 764397#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764398#$Ultimate##0 ~n := #in~n; 764513#L25 assume ~n <= 0;#res := 1; 764512#factFINAL assume true; 764396#factEXIT >#76#return; 764333#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 764391#$Ultimate##0 ~n := #in~n; 764392#L25 assume !(~n <= 0); 764359#L26 call #t~ret0 := fact(~n - 1);< 764386#$Ultimate##0 ~n := #in~n; 764992#L25 assume !(~n <= 0); 764358#L26 call #t~ret0 := fact(~n - 1);< 764521#$Ultimate##0 ~n := #in~n; 764605#L25 assume !(~n <= 0); 764360#L26 call #t~ret0 := fact(~n - 1);< 764575#$Ultimate##0 ~n := #in~n; 764691#L25 assume !(~n <= 0); 764352#L26 call #t~ret0 := fact(~n - 1);< 764601#$Ultimate##0 ~n := #in~n; 764626#L25 assume !(~n <= 0); 764357#L26 call #t~ret0 := fact(~n - 1);< 764618#$Ultimate##0 ~n := #in~n; 764625#L25 assume ~n <= 0;#res := 1; 764624#factFINAL assume true; 764617#factEXIT >#66#return; 764614#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764611#factFINAL assume true; 764600#factEXIT >#66#return; 764598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764597#factFINAL assume true; 764574#factEXIT >#66#return; 764568#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764525#factFINAL assume true; 764520#factEXIT >#66#return; 764518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764514#factFINAL assume true; 764402#factEXIT >#66#return; 764366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764409#factFINAL assume true; 764332#factEXIT >#78#return; 764331#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 764330#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 764329#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 764327#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 764325#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 764322#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 764318#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 764316#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764284#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764312#$Ultimate##0 ~n := #in~n; 764324#L25 assume !(~n <= 0); 764320#L26 call #t~ret0 := fact(~n - 1);< 764321#$Ultimate##0 ~n := #in~n; 764326#L25 assume ~n <= 0;#res := 1; 764323#factFINAL assume true; 764319#factEXIT >#66#return; 764317#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 764315#factFINAL assume true; 764313#factEXIT >#68#return; 764300#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764310#$Ultimate##0 ~n := #in~n; 764314#L25 assume ~n <= 0;#res := 1; 764311#factFINAL assume true; 764278#factEXIT >#70#return; 764275#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 764277#$Ultimate##0 ~n := #in~n; 764276#L25 assume !(~n <= 0); 764168#L26 call #t~ret0 := fact(~n - 1);< 764273#$Ultimate##0 ~n := #in~n; 764271#L25 assume ~n <= 0;#res := 1; 764272#factFINAL assume true; 767221#factEXIT >#66#return; 767219#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767218#factFINAL assume true; 767217#factEXIT >#72#return; 767216#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767214#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 766780#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766779#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766778#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 766770#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 766777#$Ultimate##0 ~n := #in~n; 767863#L25 assume !(~n <= 0); 765954#L26 call #t~ret0 := fact(~n - 1);< 766884#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766830#factFINAL assume true; 766769#factEXIT >#68#return; 766771#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766775#$Ultimate##0 ~n := #in~n; 766894#L25 assume !(~n <= 0); 765945#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766830#factFINAL assume true; 766769#factEXIT >#70#return; 766477#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766766#$Ultimate##0 ~n := #in~n; 766821#L25 assume ~n <= 0;#res := 1; 766812#factFINAL assume true; 766416#factEXIT >#72#return; 766372#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 766371#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 766370#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766368#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766272#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765646#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 765683#$Ultimate##0 ~n := #in~n; 766276#L25 assume !(~n <= 0); 765946#L26 call #t~ret0 := fact(~n - 1);< 765998#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#74#return; 764206#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 765925#$Ultimate##0 ~n := #in~n; 764199#L25 assume !(~n <= 0); 764221#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765937#factFINAL assume true; 765887#factEXIT >#76#return; 764200#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765925#$Ultimate##0 ~n := #in~n; 764199#L25 assume !(~n <= 0); 764221#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765937#factFINAL assume true; 765887#factEXIT >#78#return; 765908#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767222#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767220#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766786#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766785#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765822#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764128#$Ultimate##0 ~n := #in~n; 766891#L25 assume !(~n <= 0); 765978#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766374#factFINAL assume true; 766274#factEXIT >#74#return; 764203#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 765925#$Ultimate##0 ~n := #in~n; 764199#L25 assume !(~n <= 0); 764221#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765937#factFINAL assume true; 765887#factEXIT >#76#return; 765911#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766369#$Ultimate##0 ~n := #in~n; 766367#L25 assume !(~n <= 0); 766263#L26 call #t~ret0 := fact(~n - 1);< 766271#$Ultimate##0 ~n := #in~n; 766886#L25 assume !(~n <= 0); 766760#L26 call #t~ret0 := fact(~n - 1);< 766764#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#78#return; 766064#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 766803#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 766802#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766801#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766800#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765826#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764128#$Ultimate##0 ~n := #in~n; 766891#L25 assume !(~n <= 0); 765978#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765885#factFINAL assume true; 765760#factEXIT >#74#return; 764215#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 765925#$Ultimate##0 ~n := #in~n; 764199#L25 assume !(~n <= 0); 764221#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765937#factFINAL assume true; 765887#factEXIT >#76#return; 765827#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765874#$Ultimate##0 ~n := #in~n; 766909#L25 assume !(~n <= 0); 766288#L26 call #t~ret0 := fact(~n - 1);< 766295#$Ultimate##0 ~n := #in~n; 768011#L25 assume !(~n <= 0); 766254#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766374#factFINAL assume true; 766274#factEXIT >#78#return; 765965#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 765963#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 765962#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 765961#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 765960#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765616#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 765928#$Ultimate##0 ~n := #in~n; 766899#L25 assume !(~n <= 0); 765971#L26 call #t~ret0 := fact(~n - 1);< 766893#$Ultimate##0 ~n := #in~n; 766892#L25 assume !(~n <= 0); 765983#L26 call #t~ret0 := fact(~n - 1);< 766890#$Ultimate##0 ~n := #in~n; 766889#L25 assume !(~n <= 0); 765981#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766107#factFINAL assume true; 765968#factEXIT >#66#return; 765967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765939#factFINAL assume true; 765927#factEXIT >#74#return; 764220#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 765925#$Ultimate##0 ~n := #in~n; 764199#L25 assume !(~n <= 0); 764221#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765937#factFINAL assume true; 765887#factEXIT >#76#return; 765828#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765874#$Ultimate##0 ~n := #in~n; 766909#L25 assume !(~n <= 0); 766288#L26 call #t~ret0 := fact(~n - 1);< 766295#$Ultimate##0 ~n := #in~n; 768011#L25 assume !(~n <= 0); 766254#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766886#L25 assume !(~n <= 0); 766760#L26 call #t~ret0 := fact(~n - 1);< 766764#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765885#factFINAL assume true; 765760#factEXIT >#78#return; 765759#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 765756#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 765755#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 765753#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 765751#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764125#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764126#$Ultimate##0 ~n := #in~n; 765724#L25 assume !(~n <= 0); 765691#L26 call #t~ret0 := fact(~n - 1);< 765719#$Ultimate##0 ~n := #in~n; 765713#L25 assume !(~n <= 0); 765689#L26 call #t~ret0 := fact(~n - 1);< 765711#$Ultimate##0 ~n := #in~n; 765707#L25 assume !(~n <= 0); 765338#L26 call #t~ret0 := fact(~n - 1);< 765359#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765349#factFINAL assume true; 765346#factEXIT >#66#return; 765345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765341#factFINAL assume true; 765327#factEXIT >#66#return; 765339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765733#factFINAL assume true; 765731#factEXIT >#66#return; 765730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765727#factFINAL assume true; 765725#factEXIT >#66#return; 765726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765745#factFINAL assume true; 765746#factEXIT >#74#return; 764234#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764235#$Ultimate##0 ~n := #in~n; 765882#L25 assume !(~n <= 0); 765880#L26 call #t~ret0 := fact(~n - 1);< 765881#$Ultimate##0 ~n := #in~n; 765884#L25 assume ~n <= 0;#res := 1; 765883#factFINAL assume true; 765879#factEXIT >#66#return; 765878#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765877#factFINAL assume true; 765744#factEXIT >#76#return; 765195#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765273#$Ultimate##0 ~n := #in~n; 766948#L25 assume !(~n <= 0); 765330#L26 call #t~ret0 := fact(~n - 1);< 765350#$Ultimate##0 ~n := #in~n; 765706#L25 assume !(~n <= 0); 765332#L26 call #t~ret0 := fact(~n - 1);< 765359#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765349#factFINAL assume true; 765346#factEXIT >#66#return; 765345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765341#factFINAL assume true; 765327#factEXIT >#66#return; 765339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765733#factFINAL assume true; 765731#factEXIT >#66#return; 765730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765727#factFINAL assume true; 765725#factEXIT >#66#return; 765726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765745#factFINAL assume true; 765746#factEXIT >#78#return; 765268#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767114#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767113#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767109#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 767108#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 767107#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 767106#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767104#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765287#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764158#$Ultimate##0 ~n := #in~n; 765295#L25 assume !(~n <= 0); 765154#L26 call #t~ret0 := fact(~n - 1);< 765289#$Ultimate##0 ~n := #in~n; 764328#L25 assume !(~n <= 0); 765156#L26 call #t~ret0 := fact(~n - 1);< 765318#$Ultimate##0 ~n := #in~n; 765322#L25 assume ~n <= 0;#res := 1; 765321#factFINAL assume true; 765317#factEXIT >#66#return; 765315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765313#factFINAL assume true; 765309#factEXIT >#66#return; 765310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767137#factFINAL assume true; 767093#factEXIT >#68#return; 764280#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764310#$Ultimate##0 ~n := #in~n; 764314#L25 assume ~n <= 0;#res := 1; 764311#factFINAL assume true; 764278#factEXIT >#70#return; 764301#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766757#$Ultimate##0 ~n := #in~n; 766297#L25 assume !(~n <= 0); 764169#L26 call #t~ret0 := fact(~n - 1);< 766283#$Ultimate##0 ~n := #in~n; 764274#L25 assume !(~n <= 0); 764166#L26 call #t~ret0 := fact(~n - 1);< 764171#$Ultimate##0 ~n := #in~n; 764195#L25 assume ~n <= 0;#res := 1; 764198#factFINAL assume true; 767140#factEXIT >#66#return; 767139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767135#factFINAL assume true; 767133#factEXIT >#66#return; 767132#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767131#factFINAL assume true; 767086#factEXIT >#72#return; 767084#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767082#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 767070#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767064#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767058#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 766632#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 766835#$Ultimate##0 ~n := #in~n; 766850#L25 assume !(~n <= 0); 766260#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766834#factFINAL assume true; 766572#factEXIT >#68#return; 766140#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764225#$Ultimate##0 ~n := #in~n; 766841#L25 assume !(~n <= 0); 765951#L26 call #t~ret0 := fact(~n - 1);< 766252#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766830#factFINAL assume true; 766769#factEXIT >#70#return; 766008#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766820#$Ultimate##0 ~n := #in~n; 767860#L25 assume !(~n <= 0); 765942#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766993#factFINAL assume true; 766985#factEXIT >#72#return; 766986#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767050#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 767048#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767047#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767045#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 766589#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 766835#$Ultimate##0 ~n := #in~n; 766850#L25 assume !(~n <= 0); 766260#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766834#factFINAL assume true; 766572#factEXIT >#68#return; 766159#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764225#$Ultimate##0 ~n := #in~n; 766841#L25 assume !(~n <= 0); 765951#L26 call #t~ret0 := fact(~n - 1);< 766252#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766834#factFINAL assume true; 766572#factEXIT >#70#return; 766026#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766820#$Ultimate##0 ~n := #in~n; 767860#L25 assume ~n <= 0;#res := 1; 766812#factFINAL assume true; 766416#factEXIT >#72#return; 766507#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 766966#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 766963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766959#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766957#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765781#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764128#$Ultimate##0 ~n := #in~n; 766891#L25 assume !(~n <= 0); 765978#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766374#factFINAL assume true; 766274#factEXIT >#74#return; 765780#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765892#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766078#$Ultimate##0 ~n := #in~n; 766901#L25 assume !(~n <= 0); 765943#L26 call #t~ret0 := fact(~n - 1);< 766270#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765937#factFINAL assume true; 765887#factEXIT >#78#return; 765902#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767693#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767692#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767691#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767690#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765783#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764128#$Ultimate##0 ~n := #in~n; 766891#L25 assume !(~n <= 0); 765978#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765885#factFINAL assume true; 765760#factEXIT >#74#return; 765782#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765894#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766078#$Ultimate##0 ~n := #in~n; 766901#L25 assume !(~n <= 0); 765943#L26 call #t~ret0 := fact(~n - 1);< 766270#$Ultimate##0 ~n := #in~n; 766886#L25 assume !(~n <= 0); 766760#L26 call #t~ret0 := fact(~n - 1);< 766764#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#78#return; 766072#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767689#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767688#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767687#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767686#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765408#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 765928#$Ultimate##0 ~n := #in~n; 766899#L25 assume !(~n <= 0); 765971#L26 call #t~ret0 := fact(~n - 1);< 766893#$Ultimate##0 ~n := #in~n; 766892#L25 assume !(~n <= 0); 765983#L26 call #t~ret0 := fact(~n - 1);< 766890#$Ultimate##0 ~n := #in~n; 766889#L25 assume !(~n <= 0); 765981#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766107#factFINAL assume true; 765968#factEXIT >#66#return; 765967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765939#factFINAL assume true; 765927#factEXIT >#74#return; 765791#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765793#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765874#$Ultimate##0 ~n := #in~n; 766909#L25 assume !(~n <= 0); 766288#L26 call #t~ret0 := fact(~n - 1);< 766295#$Ultimate##0 ~n := #in~n; 768011#L25 assume !(~n <= 0); 766254#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766374#factFINAL assume true; 766274#factEXIT >#78#return; 765862#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767684#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767683#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767680#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767679#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765426#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 765928#$Ultimate##0 ~n := #in~n; 766899#L25 assume !(~n <= 0); 765971#L26 call #t~ret0 := fact(~n - 1);< 766893#$Ultimate##0 ~n := #in~n; 766892#L25 assume !(~n <= 0); 765983#L26 call #t~ret0 := fact(~n - 1);< 766890#$Ultimate##0 ~n := #in~n; 766889#L25 assume !(~n <= 0); 765981#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766107#factFINAL assume true; 765968#factEXIT >#66#return; 765967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765939#factFINAL assume true; 765927#factEXIT >#74#return; 765802#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765799#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765874#$Ultimate##0 ~n := #in~n; 766909#L25 assume !(~n <= 0); 766288#L26 call #t~ret0 := fact(~n - 1);< 766295#$Ultimate##0 ~n := #in~n; 768011#L25 assume !(~n <= 0); 766254#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766886#L25 assume !(~n <= 0); 766760#L26 call #t~ret0 := fact(~n - 1);< 766764#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765885#factFINAL assume true; 765760#factEXIT >#78#return; 765680#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 766924#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 766922#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766923#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767547#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765199#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764126#$Ultimate##0 ~n := #in~n; 765724#L25 assume !(~n <= 0); 765691#L26 call #t~ret0 := fact(~n - 1);< 765719#$Ultimate##0 ~n := #in~n; 765713#L25 assume !(~n <= 0); 765689#L26 call #t~ret0 := fact(~n - 1);< 765711#$Ultimate##0 ~n := #in~n; 765707#L25 assume !(~n <= 0); 765338#L26 call #t~ret0 := fact(~n - 1);< 765359#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765349#factFINAL assume true; 765346#factEXIT >#66#return; 765345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765341#factFINAL assume true; 765327#factEXIT >#66#return; 765339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765733#factFINAL assume true; 765731#factEXIT >#66#return; 765730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765727#factFINAL assume true; 765725#factEXIT >#66#return; 765726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765745#factFINAL assume true; 765746#factEXIT >#74#return; 765202#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 765374#$Ultimate##0 ~n := #in~n; 765370#L25 assume !(~n <= 0); 765334#L26 call #t~ret0 := fact(~n - 1);< 765369#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765358#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765748#factFINAL assume true; 765735#factEXIT >#76#return; 765219#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765273#$Ultimate##0 ~n := #in~n; 766948#L25 assume !(~n <= 0); 765330#L26 call #t~ret0 := fact(~n - 1);< 765350#$Ultimate##0 ~n := #in~n; 765706#L25 assume !(~n <= 0); 765332#L26 call #t~ret0 := fact(~n - 1);< 765359#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765349#factFINAL assume true; 765346#factEXIT >#66#return; 765345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765341#factFINAL assume true; 765327#factEXIT >#66#return; 765339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765733#factFINAL assume true; 765731#factEXIT >#66#return; 765730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765727#factFINAL assume true; 765725#factEXIT >#66#return; 765726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765745#factFINAL assume true; 765746#factEXIT >#78#return; 765269#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767536#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767534#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767532#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 767531#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 767530#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 767529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767528#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765285#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764158#$Ultimate##0 ~n := #in~n; 765295#L25 assume !(~n <= 0); 765154#L26 call #t~ret0 := fact(~n - 1);< 765289#$Ultimate##0 ~n := #in~n; 764328#L25 assume !(~n <= 0); 765156#L26 call #t~ret0 := fact(~n - 1);< 765318#$Ultimate##0 ~n := #in~n; 765322#L25 assume ~n <= 0;#res := 1; 765321#factFINAL assume true; 765317#factEXIT >#66#return; 765315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765313#factFINAL assume true; 765309#factEXIT >#66#return; 765310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767137#factFINAL assume true; 767093#factEXIT >#68#return; 764291#L30-1 [2023-02-17 09:43:38,099 INFO L750 eck$LassoCheckResult]: Loop: 764291#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764310#$Ultimate##0 ~n := #in~n; 764314#L25 assume ~n <= 0;#res := 1; 764311#factFINAL assume true; 764278#factEXIT >#70#return; 764306#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766757#$Ultimate##0 ~n := #in~n; 766297#L25 assume !(~n <= 0); 764169#L26 call #t~ret0 := fact(~n - 1);< 766283#$Ultimate##0 ~n := #in~n; 764274#L25 assume !(~n <= 0); 764166#L26 call #t~ret0 := fact(~n - 1);< 764171#$Ultimate##0 ~n := #in~n; 764195#L25 assume ~n <= 0;#res := 1; 764198#factFINAL assume true; 767140#factEXIT >#66#return; 767139#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767135#factFINAL assume true; 767133#factEXIT >#66#return; 767132#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767131#factFINAL assume true; 767086#factEXIT >#72#return; 767087#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767090#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 767071#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767065#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767059#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 766626#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 766835#$Ultimate##0 ~n := #in~n; 766850#L25 assume !(~n <= 0); 766260#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766834#factFINAL assume true; 766572#factEXIT >#68#return; 766250#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764225#$Ultimate##0 ~n := #in~n; 766841#L25 assume !(~n <= 0); 765951#L26 call #t~ret0 := fact(~n - 1);< 766252#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766830#factFINAL assume true; 766769#factEXIT >#70#return; 766019#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766820#$Ultimate##0 ~n := #in~n; 767860#L25 assume !(~n <= 0); 765942#L26 call #t~ret0 := fact(~n - 1);< 765958#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766993#factFINAL assume true; 766985#factEXIT >#72#return; 766987#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767234#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 767231#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767230#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767228#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 766592#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 766835#$Ultimate##0 ~n := #in~n; 766850#L25 assume !(~n <= 0); 766260#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766834#factFINAL assume true; 766572#factEXIT >#68#return; 766181#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 764225#$Ultimate##0 ~n := #in~n; 766841#L25 assume !(~n <= 0); 765951#L26 call #t~ret0 := fact(~n - 1);< 766252#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766266#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766834#factFINAL assume true; 766572#factEXIT >#70#return; 766056#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766820#$Ultimate##0 ~n := #in~n; 767860#L25 assume ~n <= 0;#res := 1; 766812#factFINAL assume true; 766416#factEXIT >#72#return; 766525#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767243#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 767242#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767241#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767240#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 764127#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764128#$Ultimate##0 ~n := #in~n; 766891#L25 assume !(~n <= 0); 765978#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766374#factFINAL assume true; 766274#factEXIT >#74#return; 765806#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765896#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766078#$Ultimate##0 ~n := #in~n; 766901#L25 assume !(~n <= 0); 765943#L26 call #t~ret0 := fact(~n - 1);< 766270#$Ultimate##0 ~n := #in~n; 766059#L25 assume ~n <= 0;#res := 1; 765999#factFINAL assume true; 765941#factEXIT >#66#return; 765938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765937#factFINAL assume true; 765887#factEXIT >#78#return; 765919#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 766898#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 766897#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766896#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766895#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765815#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764128#$Ultimate##0 ~n := #in~n; 766891#L25 assume !(~n <= 0); 765978#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765885#factFINAL assume true; 765760#factEXIT >#74#return; 765820#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765890#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 766078#$Ultimate##0 ~n := #in~n; 766901#L25 assume !(~n <= 0); 765943#L26 call #t~ret0 := fact(~n - 1);< 766270#$Ultimate##0 ~n := #in~n; 766886#L25 assume !(~n <= 0); 766760#L26 call #t~ret0 := fact(~n - 1);< 766764#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#78#return; 766068#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 766978#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 766977#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766976#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766975#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765648#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 765928#$Ultimate##0 ~n := #in~n; 766899#L25 assume !(~n <= 0); 765971#L26 call #t~ret0 := fact(~n - 1);< 766893#$Ultimate##0 ~n := #in~n; 766892#L25 assume !(~n <= 0); 765983#L26 call #t~ret0 := fact(~n - 1);< 766890#$Ultimate##0 ~n := #in~n; 766889#L25 assume !(~n <= 0); 765981#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766107#factFINAL assume true; 765968#factEXIT >#66#return; 765967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765939#factFINAL assume true; 765927#factEXIT >#74#return; 765839#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765852#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765874#$Ultimate##0 ~n := #in~n; 766909#L25 assume !(~n <= 0); 766288#L26 call #t~ret0 := fact(~n - 1);< 766295#$Ultimate##0 ~n := #in~n; 768011#L25 assume !(~n <= 0); 766254#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766374#factFINAL assume true; 766274#factEXIT >#78#return; 764164#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 764165#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 764184#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 768010#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767861#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765389#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 765928#$Ultimate##0 ~n := #in~n; 766899#L25 assume !(~n <= 0); 765971#L26 call #t~ret0 := fact(~n - 1);< 766893#$Ultimate##0 ~n := #in~n; 766892#L25 assume !(~n <= 0); 765983#L26 call #t~ret0 := fact(~n - 1);< 766890#$Ultimate##0 ~n := #in~n; 766889#L25 assume !(~n <= 0); 765981#L26 call #t~ret0 := fact(~n - 1);< 766269#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766887#L25 assume !(~n <= 0); 765988#L26 call #t~ret0 := fact(~n - 1);< 766765#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766282#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766107#factFINAL assume true; 765968#factEXIT >#66#return; 765967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765939#factFINAL assume true; 765927#factEXIT >#74#return; 765778#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 766365#$Ultimate##0 ~n := #in~n; 766364#L25 assume !(~n <= 0); 765970#L26 call #t~ret0 := fact(~n - 1);< 766268#$Ultimate##0 ~n := #in~n; 766885#L25 assume !(~n <= 0); 766258#L26 call #t~ret0 := fact(~n - 1);< 766763#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766106#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766077#factFINAL assume true; 766060#factEXIT >#76#return; 765798#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765874#$Ultimate##0 ~n := #in~n; 766909#L25 assume !(~n <= 0); 766288#L26 call #t~ret0 := fact(~n - 1);< 766295#$Ultimate##0 ~n := #in~n; 768011#L25 assume !(~n <= 0); 766254#L26 call #t~ret0 := fact(~n - 1);< 766847#$Ultimate##0 ~n := #in~n; 766883#L25 assume !(~n <= 0); 766262#L26 call #t~ret0 := fact(~n - 1);< 766761#$Ultimate##0 ~n := #in~n; 766886#L25 assume !(~n <= 0); 766760#L26 call #t~ret0 := fact(~n - 1);< 766764#$Ultimate##0 ~n := #in~n; 766881#L25 assume ~n <= 0;#res := 1; 766880#factFINAL assume true; 766759#factEXIT >#66#return; 766758#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766299#factFINAL assume true; 766253#factEXIT >#66#return; 766265#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767251#factFINAL assume true; 766868#factEXIT >#66#return; 766866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 766742#factFINAL assume true; 766286#factEXIT >#66#return; 766284#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765885#factFINAL assume true; 765760#factEXIT >#78#return; 765667#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767551#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767549#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 766920#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 766918#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765225#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764126#$Ultimate##0 ~n := #in~n; 765724#L25 assume !(~n <= 0); 765691#L26 call #t~ret0 := fact(~n - 1);< 765719#$Ultimate##0 ~n := #in~n; 765713#L25 assume !(~n <= 0); 765689#L26 call #t~ret0 := fact(~n - 1);< 765711#$Ultimate##0 ~n := #in~n; 765707#L25 assume !(~n <= 0); 765338#L26 call #t~ret0 := fact(~n - 1);< 765359#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765349#factFINAL assume true; 765346#factEXIT >#66#return; 765345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765341#factFINAL assume true; 765327#factEXIT >#66#return; 765339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765733#factFINAL assume true; 765731#factEXIT >#66#return; 765730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765727#factFINAL assume true; 765725#factEXIT >#66#return; 765723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765720#factFINAL assume true; 765714#factEXIT >#66#return; 765712#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765708#factFINAL assume true; 765701#factEXIT >#66#return; 765694#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765699#factFINAL assume true; 765687#factEXIT >#66#return; 765684#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765371#factFINAL assume true; 765362#factEXIT >#74#return; 765258#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 765374#$Ultimate##0 ~n := #in~n; 765370#L25 assume !(~n <= 0); 765334#L26 call #t~ret0 := fact(~n - 1);< 765369#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765358#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765748#factFINAL assume true; 765735#factEXIT >#76#return; 765186#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 765722#$Ultimate##0 ~n := #in~n; 765718#L25 assume !(~n <= 0); 765342#L26 call #t~ret0 := fact(~n - 1);< 765710#$Ultimate##0 ~n := #in~n; 765703#L25 assume !(~n <= 0); 765328#L26 call #t~ret0 := fact(~n - 1);< 765344#$Ultimate##0 ~n := #in~n; 765367#L25 assume !(~n <= 0); 765333#L26 call #t~ret0 := fact(~n - 1);< 765348#$Ultimate##0 ~n := #in~n; 765706#L25 assume !(~n <= 0); 765332#L26 call #t~ret0 := fact(~n - 1);< 765359#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765698#L25 assume !(~n <= 0); 765329#L26 call #t~ret0 := fact(~n - 1);< 765686#$Ultimate##0 ~n := #in~n; 765697#L25 assume ~n <= 0;#res := 1; 765696#factFINAL assume true; 765685#factEXIT >#66#return; 765373#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765368#factFINAL assume true; 765357#factEXIT >#66#return; 765351#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765349#factFINAL assume true; 765346#factEXIT >#66#return; 765345#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765341#factFINAL assume true; 765327#factEXIT >#66#return; 765339#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765733#factFINAL assume true; 765731#factEXIT >#66#return; 765730#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765727#factFINAL assume true; 765725#factEXIT >#66#return; 765723#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765720#factFINAL assume true; 765714#factEXIT >#66#return; 765715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765966#factFINAL assume true; 765178#factEXIT >#78#return; 765266#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 767567#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 767565#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 767562#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 767560#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 767558#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 767557#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 767555#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 765288#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 764158#$Ultimate##0 ~n := #in~n; 765295#L25 assume !(~n <= 0); 765154#L26 call #t~ret0 := fact(~n - 1);< 765289#$Ultimate##0 ~n := #in~n; 764328#L25 assume !(~n <= 0); 765156#L26 call #t~ret0 := fact(~n - 1);< 765318#$Ultimate##0 ~n := #in~n; 765322#L25 assume ~n <= 0;#res := 1; 765321#factFINAL assume true; 765317#factEXIT >#66#return; 765315#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 765313#factFINAL assume true; 765309#factEXIT >#66#return; 765310#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 767137#factFINAL assume true; 767093#factEXIT >#68#return; 764291#L30-1 [2023-02-17 09:43:38,100 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:38,100 INFO L85 PathProgramCache]: Analyzing trace with hash -1310673628, now seen corresponding path program 51 times [2023-02-17 09:43:38,100 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:38,100 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1975658715] [2023-02-17 09:43:38,101 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:38,101 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:38,134 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:38,134 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2019947522] [2023-02-17 09:43:38,134 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:43:38,134 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:38,135 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:38,138 INFO L229 MonitoredProcess]: Starting monitored process 251 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:38,139 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (251)] Waiting until timeout for monitored process [2023-02-17 09:43:39,110 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2023-02-17 09:43:39,110 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:39,113 INFO L263 TraceCheckSpWp]: Trace formula consists of 316 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:43:39,118 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:39,176 INFO L134 CoverageAnalysis]: Checked inductivity of 101466 backedges. 4024 proven. 649 refuted. 0 times theorem prover too weak. 96793 trivial. 0 not checked. [2023-02-17 09:43:39,176 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:39,299 INFO L134 CoverageAnalysis]: Checked inductivity of 101466 backedges. 4024 proven. 654 refuted. 0 times theorem prover too weak. 96788 trivial. 0 not checked. [2023-02-17 09:43:39,299 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:39,299 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1975658715] [2023-02-17 09:43:39,299 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:39,300 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2019947522] [2023-02-17 09:43:39,300 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2019947522] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:39,300 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:39,300 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 18 [2023-02-17 09:43:39,301 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [955709497] [2023-02-17 09:43:39,301 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:39,301 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:39,301 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:39,301 INFO L85 PathProgramCache]: Analyzing trace with hash -385209448, now seen corresponding path program 45 times [2023-02-17 09:43:39,302 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:39,302 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [184219923] [2023-02-17 09:43:39,302 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:39,302 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:39,320 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:39,320 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1616822946] [2023-02-17 09:43:39,320 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:43:39,320 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:39,320 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:39,323 INFO L229 MonitoredProcess]: Starting monitored process 252 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:39,324 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (252)] Waiting until timeout for monitored process [2023-02-17 09:43:40,221 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2023-02-17 09:43:40,222 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:40,223 INFO L263 TraceCheckSpWp]: Trace formula consists of 170 conjuncts, 17 conjunts are in the unsatisfiable core [2023-02-17 09:43:40,225 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:40,273 INFO L134 CoverageAnalysis]: Checked inductivity of 19981 backedges. 1156 proven. 689 refuted. 0 times theorem prover too weak. 18136 trivial. 0 not checked. [2023-02-17 09:43:40,273 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:40,383 INFO L134 CoverageAnalysis]: Checked inductivity of 19981 backedges. 1156 proven. 694 refuted. 0 times theorem prover too weak. 18131 trivial. 0 not checked. [2023-02-17 09:43:40,383 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:40,383 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [184219923] [2023-02-17 09:43:40,384 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:40,384 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1616822946] [2023-02-17 09:43:40,384 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1616822946] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:40,384 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:40,384 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 15] total 18 [2023-02-17 09:43:40,384 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1637795024] [2023-02-17 09:43:40,384 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:40,384 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:40,385 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:40,385 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2023-02-17 09:43:40,385 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=57, Invalid=285, Unknown=0, NotChecked=0, Total=342 [2023-02-17 09:43:40,385 INFO L87 Difference]: Start difference. First operand 3908 states and 8475 transitions. cyclomatic complexity: 4608 Second operand has 19 states, 15 states have (on average 3.2666666666666666) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (18), 1 states have call predecessors, (18), 6 states have return successors, (19), 7 states have call predecessors, (19), 11 states have call successors, (19) [2023-02-17 09:43:40,857 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:40,857 INFO L93 Difference]: Finished difference Result 3349 states and 7054 transitions. [2023-02-17 09:43:40,857 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3349 states and 7054 transitions. [2023-02-17 09:43:40,879 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 722 [2023-02-17 09:43:40,909 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3349 states to 3349 states and 7047 transitions. [2023-02-17 09:43:40,910 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 523 [2023-02-17 09:43:40,910 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 523 [2023-02-17 09:43:40,910 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3349 states and 7047 transitions. [2023-02-17 09:43:40,910 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:40,911 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3349 states and 7047 transitions. [2023-02-17 09:43:40,912 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3349 states and 7047 transitions. [2023-02-17 09:43:40,961 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3349 to 3320. [2023-02-17 09:43:40,964 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3320 states, 1888 states have (on average 1.0423728813559323) internal successors, (1968), 1869 states have internal predecessors, (1968), 1181 states have call successors, (1203), 320 states have call predecessors, (1203), 251 states have return successors, (3830), 1130 states have call predecessors, (3830), 1181 states have call successors, (3830) [2023-02-17 09:43:40,978 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3320 states to 3320 states and 7001 transitions. [2023-02-17 09:43:40,978 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3320 states and 7001 transitions. [2023-02-17 09:43:40,978 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2023-02-17 09:43:40,978 INFO L428 stractBuchiCegarLoop]: Abstraction has 3320 states and 7001 transitions. [2023-02-17 09:43:40,979 INFO L335 stractBuchiCegarLoop]: ======== Iteration 75 ============ [2023-02-17 09:43:40,979 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3320 states and 7001 transitions. [2023-02-17 09:43:40,987 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 722 [2023-02-17 09:43:40,988 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:40,988 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:40,994 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [303, 303, 216, 216, 216, 216, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:40,994 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [179, 179, 149, 149, 149, 149, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:40,995 INFO L748 eck$LassoCheckResult]: Stem: 782509#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 782439#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 782440#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 782462#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 782510#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 783111#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783110#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783108#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783109#$Ultimate##0 ~n := #in~n; 783113#L25 assume ~n <= 0;#res := 1; 783112#factFINAL assume true; 783107#factEXIT >#68#return; 783105#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783106#$Ultimate##0 ~n := #in~n; 783118#L25 assume ~n <= 0;#res := 1; 783114#factFINAL assume true; 783104#factEXIT >#70#return; 783101#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783102#$Ultimate##0 ~n := #in~n; 783119#L25 assume ~n <= 0;#res := 1; 783115#factFINAL assume true; 783100#factEXIT >#72#return; 783099#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 783098#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 783097#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 783095#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783094#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783091#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783092#$Ultimate##0 ~n := #in~n; 783120#L25 assume !(~n <= 0); 783085#L26 call #t~ret0 := fact(~n - 1);< 783088#$Ultimate##0 ~n := #in~n; 783096#L25 assume ~n <= 0;#res := 1; 783093#factFINAL assume true; 783084#factEXIT >#66#return; 783087#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783103#factFINAL assume true; 783090#factEXIT >#74#return; 783082#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783083#$Ultimate##0 ~n := #in~n; 783117#L25 assume ~n <= 0;#res := 1; 783089#factFINAL assume true; 783081#factEXIT >#76#return; 783077#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783078#$Ultimate##0 ~n := #in~n; 783116#L25 assume !(~n <= 0); 783086#L26 call #t~ret0 := fact(~n - 1);< 783088#$Ultimate##0 ~n := #in~n; 783096#L25 assume ~n <= 0;#res := 1; 783093#factFINAL assume true; 783084#factEXIT >#66#return; 783080#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783079#factFINAL assume true; 783076#factEXIT >#78#return; 783075#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 783072#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 783071#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 783045#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783031#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782997#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782999#$Ultimate##0 ~n := #in~n; 783044#L25 assume !(~n <= 0); 783020#L26 call #t~ret0 := fact(~n - 1);< 783030#$Ultimate##0 ~n := #in~n; 783034#L25 assume !(~n <= 0); 783022#L26 call #t~ret0 := fact(~n - 1);< 783033#$Ultimate##0 ~n := #in~n; 783043#L25 assume ~n <= 0;#res := 1; 783040#factFINAL assume true; 783036#factEXIT >#66#return; 783035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783032#factFINAL assume true; 783019#factEXIT >#66#return; 783024#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783039#factFINAL assume true; 783028#factEXIT >#74#return; 783016#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783017#$Ultimate##0 ~n := #in~n; 783027#L25 assume ~n <= 0;#res := 1; 783026#factFINAL assume true; 783015#factEXIT >#76#return; 783009#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783010#$Ultimate##0 ~n := #in~n; 783041#L25 assume !(~n <= 0); 783021#L26 call #t~ret0 := fact(~n - 1);< 783025#$Ultimate##0 ~n := #in~n; 783046#L25 assume !(~n <= 0); 783037#L26 call #t~ret0 := fact(~n - 1);< 783038#$Ultimate##0 ~n := #in~n; 783043#L25 assume ~n <= 0;#res := 1; 783040#factFINAL assume true; 783036#factEXIT >#66#return; 783035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783032#factFINAL assume true; 783019#factEXIT >#66#return; 783014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783011#factFINAL assume true; 783008#factEXIT >#78#return; 783007#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 783006#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 783004#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 783003#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783001#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782998#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782999#$Ultimate##0 ~n := #in~n; 783044#L25 assume !(~n <= 0); 783020#L26 call #t~ret0 := fact(~n - 1);< 783030#$Ultimate##0 ~n := #in~n; 783034#L25 assume !(~n <= 0); 783022#L26 call #t~ret0 := fact(~n - 1);< 783033#$Ultimate##0 ~n := #in~n; 783034#L25 assume !(~n <= 0); 783022#L26 call #t~ret0 := fact(~n - 1);< 783033#$Ultimate##0 ~n := #in~n; 783043#L25 assume ~n <= 0;#res := 1; 783040#factFINAL assume true; 783036#factEXIT >#66#return; 783035#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783032#factFINAL assume true; 783019#factEXIT >#66#return; 783023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783042#factFINAL assume true; 783029#factEXIT >#66#return; 783018#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783012#factFINAL assume true; 782996#factEXIT >#74#return; 782984#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782985#$Ultimate##0 ~n := #in~n; 782995#L25 assume ~n <= 0;#res := 1; 782987#factFINAL assume true; 782983#factEXIT >#76#return; 782980#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782981#$Ultimate##0 ~n := #in~n; 783013#L25 assume !(~n <= 0); 782989#L26 call #t~ret0 := fact(~n - 1);< 782994#$Ultimate##0 ~n := #in~n; 783070#L25 assume !(~n <= 0); 782992#L26 call #t~ret0 := fact(~n - 1);< 783055#$Ultimate##0 ~n := #in~n; 783069#L25 assume !(~n <= 0); 782990#L26 call #t~ret0 := fact(~n - 1);< 783065#$Ultimate##0 ~n := #in~n; 783068#L25 assume ~n <= 0;#res := 1; 783066#factFINAL assume true; 783064#factEXIT >#66#return; 783063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783061#factFINAL assume true; 783059#factEXIT >#66#return; 783058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783057#factFINAL assume true; 782988#factEXIT >#66#return; 782986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782982#factFINAL assume true; 782979#factEXIT >#78#return; 782977#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 782976#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 782974#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 782972#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 782970#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782966#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782967#$Ultimate##0 ~n := #in~n; 783122#L25 assume !(~n <= 0); 782991#L26 call #t~ret0 := fact(~n - 1);< 783055#$Ultimate##0 ~n := #in~n; 783069#L25 assume !(~n <= 0); 782990#L26 call #t~ret0 := fact(~n - 1);< 783065#$Ultimate##0 ~n := #in~n; 783069#L25 assume !(~n <= 0); 782990#L26 call #t~ret0 := fact(~n - 1);< 783065#$Ultimate##0 ~n := #in~n; 783069#L25 assume !(~n <= 0); 782990#L26 call #t~ret0 := fact(~n - 1);< 783065#$Ultimate##0 ~n := #in~n; 783068#L25 assume ~n <= 0;#res := 1; 783066#factFINAL assume true; 783064#factEXIT >#66#return; 783063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783061#factFINAL assume true; 783059#factEXIT >#66#return; 783058#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783057#factFINAL assume true; 782988#factEXIT >#66#return; 782993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783073#factFINAL assume true; 783054#factEXIT >#66#return; 783053#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783052#factFINAL assume true; 782965#factEXIT >#74#return; 782962#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782963#$Ultimate##0 ~n := #in~n; 783051#L25 assume ~n <= 0;#res := 1; 783050#factFINAL assume true; 782961#factEXIT >#76#return; 782944#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782953#$Ultimate##0 ~n := #in~n; 782948#L25 assume !(~n <= 0); 782924#L26 call #t~ret0 := fact(~n - 1);< 782945#$Ultimate##0 ~n := #in~n; 782978#L25 assume !(~n <= 0); 782918#L26 call #t~ret0 := fact(~n - 1);< 782952#$Ultimate##0 ~n := #in~n; 782975#L25 assume !(~n <= 0); 782920#L26 call #t~ret0 := fact(~n - 1);< 782969#$Ultimate##0 ~n := #in~n; 782975#L25 assume !(~n <= 0); 782920#L26 call #t~ret0 := fact(~n - 1);< 782969#$Ultimate##0 ~n := #in~n; 782973#L25 assume ~n <= 0;#res := 1; 782971#factFINAL assume true; 782968#factEXIT >#66#return; 782964#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782960#factFINAL assume true; 782958#factEXIT >#66#return; 782956#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782954#factFINAL assume true; 782951#factEXIT >#66#return; 782947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782943#factFINAL assume true; 782939#factEXIT >#66#return; 782940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783307#factFINAL assume true; 783306#factEXIT >#78#return; 782804#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 782802#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 782803#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 782798#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 782799#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782641#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782642#$Ultimate##0 ~n := #in~n; 782694#L25 assume !(~n <= 0); 782691#L26 call #t~ret0 := fact(~n - 1);< 782692#$Ultimate##0 ~n := #in~n; 782702#L25 assume !(~n <= 0); 782699#L26 call #t~ret0 := fact(~n - 1);< 782700#$Ultimate##0 ~n := #in~n; 782719#L25 assume !(~n <= 0); 782716#L26 call #t~ret0 := fact(~n - 1);< 782718#$Ultimate##0 ~n := #in~n; 782727#L25 assume !(~n <= 0); 782717#L26 call #t~ret0 := fact(~n - 1);< 782725#$Ultimate##0 ~n := #in~n; 782727#L25 assume !(~n <= 0); 782717#L26 call #t~ret0 := fact(~n - 1);< 782725#$Ultimate##0 ~n := #in~n; 782740#L25 assume ~n <= 0;#res := 1; 782739#factFINAL assume true; 782737#factEXIT >#66#return; 782735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782733#factFINAL assume true; 782724#factEXIT >#66#return; 782722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782721#factFINAL assume true; 782715#factEXIT >#66#return; 782713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782710#factFINAL assume true; 782698#factEXIT >#66#return; 782696#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782695#factFINAL assume true; 782690#factEXIT >#66#return; 782686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782684#factFINAL assume true; 782640#factEXIT >#74#return; 782637#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782638#$Ultimate##0 ~n := #in~n; 782667#L25 assume ~n <= 0;#res := 1; 782666#factFINAL assume true; 782636#factEXIT >#76#return; 782625#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782635#$Ultimate##0 ~n := #in~n; 782627#L25 assume !(~n <= 0); 782589#L26 call #t~ret0 := fact(~n - 1);< 782622#$Ultimate##0 ~n := #in~n; 782665#L25 assume !(~n <= 0); 782586#L26 call #t~ret0 := fact(~n - 1);< 782634#$Ultimate##0 ~n := #in~n; 782789#L25 assume !(~n <= 0); 782591#L26 call #t~ret0 := fact(~n - 1);< 782657#$Ultimate##0 ~n := #in~n; 782720#L25 assume !(~n <= 0); 782583#L26 call #t~ret0 := fact(~n - 1);< 782616#$Ultimate##0 ~n := #in~n; 782672#L25 assume !(~n <= 0); 782585#L26 call #t~ret0 := fact(~n - 1);< 782671#$Ultimate##0 ~n := #in~n; 782674#L25 assume ~n <= 0;#res := 1; 782673#factFINAL assume true; 782670#factEXIT >#66#return; 782669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782668#factFINAL assume true; 782662#factEXIT >#66#return; 782660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782659#factFINAL assume true; 782656#factEXIT >#66#return; 782655#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782653#factFINAL assume true; 782633#factEXIT >#66#return; 782626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782624#factFINAL assume true; 782621#factEXIT >#66#return; 782595#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784689#factFINAL assume true; 784687#factEXIT >#78#return; 782564#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784670#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 784638#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784633#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 784628#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 784623#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 784616#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784612#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784433#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784594#$Ultimate##0 ~n := #in~n; 784624#L25 assume !(~n <= 0); 784488#L26 call #t~ret0 := fact(~n - 1);< 784622#$Ultimate##0 ~n := #in~n; 784626#L25 assume ~n <= 0;#res := 1; 784625#factFINAL assume true; 784621#factEXIT >#66#return; 784614#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784611#factFINAL assume true; 784593#factEXIT >#68#return; 784427#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784452#$Ultimate##0 ~n := #in~n; 784480#L25 assume ~n <= 0;#res := 1; 784462#factFINAL assume true; 784419#factEXIT >#70#return; 784444#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784518#$Ultimate##0 ~n := #in~n; 784608#L25 assume !(~n <= 0); 784459#L26 call #t~ret0 := fact(~n - 1);< 784590#$Ultimate##0 ~n := #in~n; 784607#L25 assume ~n <= 0;#res := 1; 784606#factFINAL assume true; 784589#factEXIT >#66#return; 784588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784574#factFINAL assume true; 784517#factEXIT >#72#return; 784511#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784509#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 784508#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784507#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784506#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784470#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784505#$Ultimate##0 ~n := #in~n; 785390#L25 assume !(~n <= 0); 783900#L26 call #t~ret0 := fact(~n - 1);< 784941#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783909#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784504#factFINAL assume true; 784469#factEXIT >#68#return; 782496#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782497#$Ultimate##0 ~n := #in~n; 785420#L25 assume !(~n <= 0); 783904#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783909#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784504#factFINAL assume true; 784469#factEXIT >#70#return; 784087#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784210#$Ultimate##0 ~n := #in~n; 784393#L25 assume ~n <= 0;#res := 1; 784209#factFINAL assume true; 784043#factEXIT >#72#return; 784175#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784927#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 784926#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784925#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783934#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783569#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783701#$Ultimate##0 ~n := #in~n; 783920#L25 assume !(~n <= 0); 783882#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#74#return; 783809#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783842#$Ultimate##0 ~n := #in~n; 783964#L25 assume !(~n <= 0); 783905#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#76#return; 783821#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783842#$Ultimate##0 ~n := #in~n; 783964#L25 assume !(~n <= 0); 783905#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#78#return; 783836#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784036#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 784034#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784032#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784030#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783732#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782369#$Ultimate##0 ~n := #in~n; 785525#L25 assume !(~n <= 0); 783862#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#74#return; 783826#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783842#$Ultimate##0 ~n := #in~n; 783964#L25 assume !(~n <= 0); 783905#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#76#return; 783797#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784025#$Ultimate##0 ~n := #in~n; 784022#L25 assume !(~n <= 0); 782450#L26 call #t~ret0 := fact(~n - 1);< 783931#$Ultimate##0 ~n := #in~n; 785376#L25 assume !(~n <= 0); 782381#L26 call #t~ret0 := fact(~n - 1);< 782454#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#78#return; 783806#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785446#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785445#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785444#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785443#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783744#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782369#$Ultimate##0 ~n := #in~n; 785525#L25 assume !(~n <= 0); 783862#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#74#return; 783789#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783842#$Ultimate##0 ~n := #in~n; 783964#L25 assume !(~n <= 0); 783905#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#76#return; 782513#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782514#$Ultimate##0 ~n := #in~n; 785543#L25 assume !(~n <= 0); 783955#L26 call #t~ret0 := fact(~n - 1);< 783961#$Ultimate##0 ~n := #in~n; 785520#L25 assume !(~n <= 0); 783925#L26 call #t~ret0 := fact(~n - 1);< 784401#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#78#return; 783852#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785246#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785244#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785242#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783505#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783845#factFINAL assume true; 783846#factEXIT >#74#return; 783820#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783842#$Ultimate##0 ~n := #in~n; 783964#L25 assume !(~n <= 0); 783905#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#76#return; 783745#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782514#$Ultimate##0 ~n := #in~n; 785543#L25 assume !(~n <= 0); 783955#L26 call #t~ret0 := fact(~n - 1);< 783961#$Ultimate##0 ~n := #in~n; 785520#L25 assume !(~n <= 0); 783925#L26 call #t~ret0 := fact(~n - 1);< 784401#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785376#L25 assume !(~n <= 0); 782381#L26 call #t~ret0 := fact(~n - 1);< 782454#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#78#return; 783769#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785236#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785234#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 783946#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783854#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782366#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782367#$Ultimate##0 ~n := #in~n; 783694#L25 assume !(~n <= 0); 783388#L26 call #t~ret0 := fact(~n - 1);< 783477#$Ultimate##0 ~n := #in~n; 783935#L25 assume !(~n <= 0); 783384#L26 call #t~ret0 := fact(~n - 1);< 783396#$Ultimate##0 ~n := #in~n; 783705#L25 assume !(~n <= 0); 783382#L26 call #t~ret0 := fact(~n - 1);< 783401#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783408#factFINAL assume true; 783405#factEXIT >#66#return; 783404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783402#factFINAL assume true; 783399#factEXIT >#66#return; 783397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783398#factFINAL assume true; 783690#factEXIT >#66#return; 783688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783687#factFINAL assume true; 783685#factEXIT >#66#return; 783686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783691#factFINAL assume true; 783689#factEXIT >#74#return; 783438#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783441#$Ultimate##0 ~n := #in~n; 783447#L25 assume !(~n <= 0); 783445#L26 call #t~ret0 := fact(~n - 1);< 783446#$Ultimate##0 ~n := #in~n; 783451#L25 assume ~n <= 0;#res := 1; 783448#factFINAL assume true; 783444#factEXIT >#66#return; 783443#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783442#factFINAL assume true; 783436#factEXIT >#76#return; 782535#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783430#$Ultimate##0 ~n := #in~n; 783428#L25 assume !(~n <= 0); 783390#L26 call #t~ret0 := fact(~n - 1);< 783409#$Ultimate##0 ~n := #in~n; 783423#L25 assume !(~n <= 0); 783385#L26 call #t~ret0 := fact(~n - 1);< 783401#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783408#factFINAL assume true; 783405#factEXIT >#66#return; 783404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783402#factFINAL assume true; 783399#factEXIT >#66#return; 783397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783398#factFINAL assume true; 783690#factEXIT >#66#return; 783688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783687#factFINAL assume true; 783685#factEXIT >#66#return; 783686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783691#factFINAL assume true; 783689#factEXIT >#78#return; 782559#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784627#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 784605#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784586#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 784503#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 784501#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 784498#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784496#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784467#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784468#$Ultimate##0 ~n := #in~n; 784571#L25 assume !(~n <= 0); 784485#L26 call #t~ret0 := fact(~n - 1);< 784490#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784573#L25 assume ~n <= 0;#res := 1; 784572#factFINAL assume true; 784499#factEXIT >#66#return; 784497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784492#factFINAL assume true; 784483#factEXIT >#66#return; 784482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784481#factFINAL assume true; 784466#factEXIT >#68#return; 784430#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784452#$Ultimate##0 ~n := #in~n; 784480#L25 assume ~n <= 0;#res := 1; 784462#factFINAL assume true; 784419#factEXIT >#70#return; 784411#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784412#$Ultimate##0 ~n := #in~n; 784463#L25 assume !(~n <= 0); 784455#L26 call #t~ret0 := fact(~n - 1);< 784461#$Ultimate##0 ~n := #in~n; 784587#L25 assume !(~n <= 0); 784513#L26 call #t~ret0 := fact(~n - 1);< 784514#$Ultimate##0 ~n := #in~n; 784591#L25 assume ~n <= 0;#res := 1; 784575#factFINAL assume true; 784512#factEXIT >#66#return; 784510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784476#factFINAL assume true; 784453#factEXIT >#66#return; 784418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784417#factFINAL assume true; 784410#factEXIT >#72#return; 784408#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784406#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 784404#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784402#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784397#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784306#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784395#$Ultimate##0 ~n := #in~n; 784415#L25 assume !(~n <= 0); 783923#L26 call #t~ret0 := fact(~n - 1);< 784401#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784394#factFINAL assume true; 784211#factEXIT >#68#return; 784330#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784390#$Ultimate##0 ~n := #in~n; 784414#L25 assume !(~n <= 0); 783899#L26 call #t~ret0 := fact(~n - 1);< 784400#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783909#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784504#factFINAL assume true; 784469#factEXIT >#70#return; 784136#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784206#$Ultimate##0 ~n := #in~n; 784491#L25 assume !(~n <= 0); 783908#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784464#factFINAL assume true; 784413#factEXIT >#72#return; 784409#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784407#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 784405#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784403#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784398#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784364#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784395#$Ultimate##0 ~n := #in~n; 784415#L25 assume !(~n <= 0); 783923#L26 call #t~ret0 := fact(~n - 1);< 784401#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784394#factFINAL assume true; 784211#factEXIT >#68#return; 784350#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784390#$Ultimate##0 ~n := #in~n; 784414#L25 assume !(~n <= 0); 783899#L26 call #t~ret0 := fact(~n - 1);< 784400#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784394#factFINAL assume true; 784211#factEXIT >#70#return; 784140#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784206#$Ultimate##0 ~n := #in~n; 784491#L25 assume ~n <= 0;#res := 1; 784209#factFINAL assume true; 784043#factEXIT >#72#return; 784040#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784035#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 784033#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784031#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784029#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782368#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782369#$Ultimate##0 ~n := #in~n; 785525#L25 assume !(~n <= 0); 783862#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#74#return; 783768#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782507#$Ultimate##0 ~n := #in~n; 785256#L25 assume !(~n <= 0); 783926#L26 call #t~ret0 := fact(~n - 1);< 783962#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#76#return; 783795#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783844#$Ultimate##0 ~n := #in~n; 785414#L25 assume !(~n <= 0); 782449#L26 call #t~ret0 := fact(~n - 1);< 783932#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#78#return; 783831#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785098#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785097#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785095#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785093#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783716#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782369#$Ultimate##0 ~n := #in~n; 785525#L25 assume !(~n <= 0); 783862#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#74#return; 783717#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782507#$Ultimate##0 ~n := #in~n; 785256#L25 assume !(~n <= 0); 783926#L26 call #t~ret0 := fact(~n - 1);< 783962#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#76#return; 783794#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783844#$Ultimate##0 ~n := #in~n; 785414#L25 assume !(~n <= 0); 782449#L26 call #t~ret0 := fact(~n - 1);< 783932#$Ultimate##0 ~n := #in~n; 785376#L25 assume !(~n <= 0); 782381#L26 call #t~ret0 := fact(~n - 1);< 782454#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#78#return; 783802#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785046#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785045#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785043#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785041#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783512#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783845#factFINAL assume true; 783846#factEXIT >#74#return; 783720#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782507#$Ultimate##0 ~n := #in~n; 785256#L25 assume !(~n <= 0); 783926#L26 call #t~ret0 := fact(~n - 1);< 783962#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#76#return; 783719#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782514#$Ultimate##0 ~n := #in~n; 785543#L25 assume !(~n <= 0); 783955#L26 call #t~ret0 := fact(~n - 1);< 783961#$Ultimate##0 ~n := #in~n; 785520#L25 assume !(~n <= 0); 783925#L26 call #t~ret0 := fact(~n - 1);< 784401#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#78#return; 783771#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785038#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785037#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785036#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783939#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783526#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783845#factFINAL assume true; 783846#factEXIT >#74#return; 783721#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782507#$Ultimate##0 ~n := #in~n; 785256#L25 assume !(~n <= 0); 783926#L26 call #t~ret0 := fact(~n - 1);< 783962#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#76#return; 783684#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782514#$Ultimate##0 ~n := #in~n; 785543#L25 assume !(~n <= 0); 783955#L26 call #t~ret0 := fact(~n - 1);< 783961#$Ultimate##0 ~n := #in~n; 785520#L25 assume !(~n <= 0); 783925#L26 call #t~ret0 := fact(~n - 1);< 784401#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785376#L25 assume !(~n <= 0); 782381#L26 call #t~ret0 := fact(~n - 1);< 782454#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#78#return; 783494#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 783491#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 783490#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 783489#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 783486#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783459#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782367#$Ultimate##0 ~n := #in~n; 783694#L25 assume !(~n <= 0); 783388#L26 call #t~ret0 := fact(~n - 1);< 783477#$Ultimate##0 ~n := #in~n; 783935#L25 assume !(~n <= 0); 783384#L26 call #t~ret0 := fact(~n - 1);< 783396#$Ultimate##0 ~n := #in~n; 783705#L25 assume !(~n <= 0); 783382#L26 call #t~ret0 := fact(~n - 1);< 783401#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783408#factFINAL assume true; 783405#factEXIT >#66#return; 783404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783402#factFINAL assume true; 783399#factEXIT >#66#return; 783397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783398#factFINAL assume true; 783690#factEXIT >#66#return; 783688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783687#factFINAL assume true; 783685#factEXIT >#66#return; 783495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783492#factFINAL assume true; 783475#factEXIT >#66#return; 783473#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783469#factFINAL assume true; 783456#factEXIT >#74#return; 782547#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783429#$Ultimate##0 ~n := #in~n; 783427#L25 assume !(~n <= 0); 783377#L26 call #t~ret0 := fact(~n - 1);< 783416#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783693#factFINAL assume true; 783692#factEXIT >#76#return; 782520#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783414#$Ultimate##0 ~n := #in~n; 783411#L25 assume !(~n <= 0); 783376#L26 call #t~ret0 := fact(~n - 1);< 783403#$Ultimate##0 ~n := #in~n; 783417#L25 assume !(~n <= 0); 783373#L26 call #t~ret0 := fact(~n - 1);< 783407#$Ultimate##0 ~n := #in~n; 783423#L25 assume !(~n <= 0); 783385#L26 call #t~ret0 := fact(~n - 1);< 783401#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783408#factFINAL assume true; 783405#factEXIT >#66#return; 783404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783402#factFINAL assume true; 783399#factEXIT >#66#return; 783397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783398#factFINAL assume true; 783690#factEXIT >#66#return; 783688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783687#factFINAL assume true; 783685#factEXIT >#66#return; 783686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783691#factFINAL assume true; 783689#factEXIT >#78#return; 782556#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 784966#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 784963#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 784962#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 784960#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 784958#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 784956#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784955#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784954#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782388#$Ultimate##0 ~n := #in~n; 785008#L25 assume !(~n <= 0); 784486#L26 call #t~ret0 := fact(~n - 1);< 784490#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784573#L25 assume ~n <= 0;#res := 1; 784572#factFINAL assume true; 784499#factEXIT >#66#return; 784497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784492#factFINAL assume true; 784483#factEXIT >#66#return; 784489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785021#factFINAL assume true; 785016#factEXIT >#66#return; 785015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785014#factFINAL assume true; 785010#factEXIT >#66#return; 785009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785007#factFINAL assume true; 785003#factEXIT >#66#return; 785004#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785187#factFINAL assume true; 785185#factEXIT >#68#return; 784434#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784452#$Ultimate##0 ~n := #in~n; 784480#L25 assume ~n <= 0;#res := 1; 784462#factFINAL assume true; 784419#factEXIT >#70#return; 784448#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784759#$Ultimate##0 ~n := #in~n; 785035#L25 assume !(~n <= 0); 784970#L26 call #t~ret0 := fact(~n - 1);< 784975#$Ultimate##0 ~n := #in~n; 785013#L25 assume !(~n <= 0); 784982#L26 call #t~ret0 := fact(~n - 1);< 784986#$Ultimate##0 ~n := #in~n; 785058#L25 assume !(~n <= 0); 784992#L26 call #t~ret0 := fact(~n - 1);< 784995#$Ultimate##0 ~n := #in~n; 785472#L25 assume !(~n <= 0); 785026#L26 call #t~ret0 := fact(~n - 1);< 785029#$Ultimate##0 ~n := #in~n; 785124#L25 assume !(~n <= 0); 785115#L26 call #t~ret0 := fact(~n - 1);< 785116#$Ultimate##0 ~n := #in~n; 785125#L25 assume ~n <= 0;#res := 1; 785126#factFINAL assume true; 785114#factEXIT >#66#return; 785112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785111#factFINAL assume true; 785025#factEXIT >#66#return; 785023#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785022#factFINAL assume true; 784991#factEXIT >#66#return; 784990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784987#factFINAL assume true; 784981#factEXIT >#66#return; 784980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784978#factFINAL assume true; 784969#factEXIT >#66#return; 784973#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784999#factFINAL assume true; 784998#factEXIT >#72#return; 784821#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785293#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785292#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785291#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785290#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784677#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784722#$Ultimate##0 ~n := #in~n; 784716#L25 assume !(~n <= 0); 784694#L26 call #t~ret0 := fact(~n - 1);< 784713#$Ultimate##0 ~n := #in~n; 785374#L25 assume !(~n <= 0); 784696#L26 call #t~ret0 := fact(~n - 1);< 784785#$Ultimate##0 ~n := #in~n; 784977#L25 assume !(~n <= 0); 784702#L26 call #t~ret0 := fact(~n - 1);< 784832#$Ultimate##0 ~n := #in~n; 784977#L25 assume !(~n <= 0); 784702#L26 call #t~ret0 := fact(~n - 1);< 784832#$Ultimate##0 ~n := #in~n; 784977#L25 assume !(~n <= 0); 784702#L26 call #t~ret0 := fact(~n - 1);< 784832#$Ultimate##0 ~n := #in~n; 784851#L25 assume ~n <= 0;#res := 1; 784838#factFINAL assume true; 784830#factEXIT >#66#return; 784828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784826#factFINAL assume true; 784783#factEXIT >#66#return; 784780#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784776#factFINAL assume true; 784770#factEXIT >#66#return; 784769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784768#factFINAL assume true; 784764#factEXIT >#66#return; 784762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784760#factFINAL assume true; 784730#factEXIT >#66#return; 784731#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785294#factFINAL assume true; 785289#factEXIT >#68#return; 784642#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 782495#$Ultimate##0 ~n := #in~n; 784683#L25 assume ~n <= 0;#res := 1; 784673#factFINAL assume true; 784640#factEXIT >#70#return; 784657#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 785172#$Ultimate##0 ~n := #in~n; 785247#L25 assume !(~n <= 0); 784579#L26 call #t~ret0 := fact(~n - 1);< 784596#$Ultimate##0 ~n := #in~n; 785389#L25 assume !(~n <= 0); 783953#L26 call #t~ret0 := fact(~n - 1);< 784618#$Ultimate##0 ~n := #in~n; 785225#L25 assume !(~n <= 0); 784931#L26 call #t~ret0 := fact(~n - 1);< 784935#$Ultimate##0 ~n := #in~n; 785451#L25 assume !(~n <= 0); 782451#L26 call #t~ret0 := fact(~n - 1);< 783931#$Ultimate##0 ~n := #in~n; 785376#L25 assume !(~n <= 0); 782381#L26 call #t~ret0 := fact(~n - 1);< 782454#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785243#factFINAL assume true; 785239#factEXIT >#72#return; 785147#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785287#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785285#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785284#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785282#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784563#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784634#$Ultimate##0 ~n := #in~n; 784629#L25 assume !(~n <= 0); 782503#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785407#factFINAL assume true; 784631#factEXIT >#68#return; 784367#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784390#$Ultimate##0 ~n := #in~n; 784414#L25 assume !(~n <= 0); 783899#L26 call #t~ret0 := fact(~n - 1);< 784400#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784394#factFINAL assume true; 784211#factEXIT >#70#return; 784012#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784465#$Ultimate##0 ~n := #in~n; 785463#L25 assume ~n <= 0;#res := 1; 784209#factFINAL assume true; 784043#factEXIT >#72#return; 784201#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785278#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785277#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785276#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785275#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784565#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784634#$Ultimate##0 ~n := #in~n; 784629#L25 assume !(~n <= 0); 782503#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784581#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785090#factFINAL assume true; 785089#factEXIT >#68#return; 784216#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784390#$Ultimate##0 ~n := #in~n; 784414#L25 assume !(~n <= 0); 783899#L26 call #t~ret0 := fact(~n - 1);< 784400#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785382#L25 assume !(~n <= 0); 782385#L26 call #t~ret0 := fact(~n - 1);< 785381#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784924#factFINAL assume true; 784921#factEXIT >#70#return; 784059#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 785195#$Ultimate##0 ~n := #in~n; 785200#L25 assume ~n <= 0;#res := 1; 784209#factFINAL assume true; 784043#factEXIT >#72#return; 784160#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785271#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785269#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785268#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785267#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782490#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783812#$Ultimate##0 ~n := #in~n; 782475#L25 assume !(~n <= 0); 782477#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#74#return; 783730#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784944#$Ultimate##0 ~n := #in~n; 784943#L25 assume !(~n <= 0); 783956#L26 call #t~ret0 := fact(~n - 1);< 784942#$Ultimate##0 ~n := #in~n; 785384#L25 assume !(~n <= 0); 783927#L26 call #t~ret0 := fact(~n - 1);< 784619#$Ultimate##0 ~n := #in~n; 785382#L25 assume !(~n <= 0); 782385#L26 call #t~ret0 := fact(~n - 1);< 785381#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#76#return; 783827#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783842#$Ultimate##0 ~n := #in~n; 783964#L25 assume !(~n <= 0); 783905#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#78#return; 783841#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785266#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785265#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785264#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785263#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783609#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783845#factFINAL assume true; 783846#factEXIT >#74#return; 783740#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784944#$Ultimate##0 ~n := #in~n; 784943#L25 assume !(~n <= 0); 783956#L26 call #t~ret0 := fact(~n - 1);< 784942#$Ultimate##0 ~n := #in~n; 785384#L25 assume !(~n <= 0); 783927#L26 call #t~ret0 := fact(~n - 1);< 784619#$Ultimate##0 ~n := #in~n; 785382#L25 assume !(~n <= 0); 782385#L26 call #t~ret0 := fact(~n - 1);< 785381#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#76#return; 783743#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783943#$Ultimate##0 ~n := #in~n; 785322#L25 assume !(~n <= 0); 783906#L26 call #t~ret0 := fact(~n - 1);< 783963#$Ultimate##0 ~n := #in~n; 785382#L25 assume !(~n <= 0); 782385#L26 call #t~ret0 := fact(~n - 1);< 785381#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#78#return; 783808#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785255#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785254#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785252#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785250#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783530#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783845#factFINAL assume true; 783846#factEXIT >#74#return; 783757#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784944#$Ultimate##0 ~n := #in~n; 784943#L25 assume !(~n <= 0); 783956#L26 call #t~ret0 := fact(~n - 1);< 784942#$Ultimate##0 ~n := #in~n; 785384#L25 assume !(~n <= 0); 783927#L26 call #t~ret0 := fact(~n - 1);< 784619#$Ultimate##0 ~n := #in~n; 785382#L25 assume !(~n <= 0); 782385#L26 call #t~ret0 := fact(~n - 1);< 785381#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#76#return; 783760#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783943#$Ultimate##0 ~n := #in~n; 785322#L25 assume !(~n <= 0); 783906#L26 call #t~ret0 := fact(~n - 1);< 783963#$Ultimate##0 ~n := #in~n; 785382#L25 assume !(~n <= 0); 782385#L26 call #t~ret0 := fact(~n - 1);< 785381#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#78#return; 783777#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785229#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785228#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785227#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785226#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783605#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783897#factFINAL assume true; 783892#factEXIT >#66#return; 783891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783818#factFINAL assume true; 783814#factEXIT >#74#return; 783627#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783853#$Ultimate##0 ~n := #in~n; 785128#L25 assume !(~n <= 0); 782500#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#76#return; 783642#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783701#$Ultimate##0 ~n := #in~n; 783920#L25 assume !(~n <= 0); 783882#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#78#return; 783674#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785106#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785105#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785104#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785103#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783464#L30-5 [2023-02-17 09:43:40,997 INFO L750 eck$LassoCheckResult]: Loop: 783464#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 782367#$Ultimate##0 ~n := #in~n; 783694#L25 assume !(~n <= 0); 783388#L26 call #t~ret0 := fact(~n - 1);< 783477#$Ultimate##0 ~n := #in~n; 783935#L25 assume !(~n <= 0); 783384#L26 call #t~ret0 := fact(~n - 1);< 783396#$Ultimate##0 ~n := #in~n; 783705#L25 assume !(~n <= 0); 783382#L26 call #t~ret0 := fact(~n - 1);< 783401#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783408#factFINAL assume true; 783405#factEXIT >#66#return; 783404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783402#factFINAL assume true; 783399#factEXIT >#66#return; 783397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783398#factFINAL assume true; 783690#factEXIT >#66#return; 783688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783687#factFINAL assume true; 783685#factEXIT >#66#return; 783495#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783492#factFINAL assume true; 783475#factEXIT >#66#return; 783476#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783493#factFINAL assume true; 783485#factEXIT >#66#return; 783391#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783395#factFINAL assume true; 783371#factEXIT >#66#return; 783392#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783480#factFINAL assume true; 783479#factEXIT >#74#return; 782538#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783414#$Ultimate##0 ~n := #in~n; 783411#L25 assume !(~n <= 0); 783376#L26 call #t~ret0 := fact(~n - 1);< 783403#$Ultimate##0 ~n := #in~n; 783417#L25 assume !(~n <= 0); 783373#L26 call #t~ret0 := fact(~n - 1);< 783407#$Ultimate##0 ~n := #in~n; 783423#L25 assume !(~n <= 0); 783385#L26 call #t~ret0 := fact(~n - 1);< 783401#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783408#factFINAL assume true; 783405#factEXIT >#66#return; 783404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783402#factFINAL assume true; 783399#factEXIT >#66#return; 783397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783398#factFINAL assume true; 783690#factEXIT >#66#return; 783688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783687#factFINAL assume true; 783685#factEXIT >#66#return; 783686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783691#factFINAL assume true; 783689#factEXIT >#76#return; 782549#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 782512#$Ultimate##0 ~n := #in~n; 783466#L25 assume !(~n <= 0); 783378#L26 call #t~ret0 := fact(~n - 1);< 783454#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783435#L25 assume !(~n <= 0); 783386#L26 call #t~ret0 := fact(~n - 1);< 783422#$Ultimate##0 ~n := #in~n; 783433#L25 assume ~n <= 0;#res := 1; 783431#factFINAL assume true; 783421#factEXIT >#66#return; 783418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783415#factFINAL assume true; 783412#factEXIT >#66#return; 783410#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783408#factFINAL assume true; 783405#factEXIT >#66#return; 783404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783402#factFINAL assume true; 783399#factEXIT >#66#return; 783397#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783398#factFINAL assume true; 783690#factEXIT >#66#return; 783688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783687#factFINAL assume true; 783685#factEXIT >#66#return; 783686#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783691#factFINAL assume true; 783689#factEXIT >#78#return; 782561#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785044#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785042#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785040#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 785039#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 784887#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 784885#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 784884#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784867#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784869#$Ultimate##0 ~n := #in~n; 784901#L25 assume !(~n <= 0); 784494#L26 call #t~ret0 := fact(~n - 1);< 784900#$Ultimate##0 ~n := #in~n; 784569#L25 assume !(~n <= 0); 784487#L26 call #t~ret0 := fact(~n - 1);< 784495#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784502#L25 assume !(~n <= 0); 784484#L26 call #t~ret0 := fact(~n - 1);< 784500#$Ultimate##0 ~n := #in~n; 784573#L25 assume ~n <= 0;#res := 1; 784572#factFINAL assume true; 784499#factEXIT >#66#return; 784497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784492#factFINAL assume true; 784483#factEXIT >#66#return; 784489#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785021#factFINAL assume true; 785016#factEXIT >#66#return; 785015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785014#factFINAL assume true; 785010#factEXIT >#66#return; 785009#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785007#factFINAL assume true; 785003#factEXIT >#66#return; 785002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785001#factFINAL assume true; 784895#factEXIT >#66#return; 784899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784964#factFINAL assume true; 784961#factEXIT >#66#return; 784959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784957#factFINAL assume true; 784865#factEXIT >#68#return; 784429#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784594#$Ultimate##0 ~n := #in~n; 784624#L25 assume ~n <= 0;#res := 1; 784462#factFINAL assume true; 784419#factEXIT >#70#return; 782376#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784735#$Ultimate##0 ~n := #in~n; 784734#L25 assume !(~n <= 0); 784724#L26 call #t~ret0 := fact(~n - 1);< 784729#$Ultimate##0 ~n := #in~n; 784726#L25 assume !(~n <= 0); 784711#L26 call #t~ret0 := fact(~n - 1);< 784718#$Ultimate##0 ~n := #in~n; 784714#L25 assume !(~n <= 0); 784690#L26 call #t~ret0 := fact(~n - 1);< 784708#$Ultimate##0 ~n := #in~n; 784707#L25 assume !(~n <= 0); 784671#L26 call #t~ret0 := fact(~n - 1);< 784688#$Ultimate##0 ~n := #in~n; 784674#L25 assume !(~n <= 0); 784478#L26 call #t~ret0 := fact(~n - 1);< 784637#$Ultimate##0 ~n := #in~n; 784632#L25 assume !(~n <= 0); 784457#L26 call #t~ret0 := fact(~n - 1);< 784479#$Ultimate##0 ~n := #in~n; 784592#L25 assume !(~n <= 0); 784458#L26 call #t~ret0 := fact(~n - 1);< 784516#$Ultimate##0 ~n := #in~n; 784591#L25 assume ~n <= 0;#res := 1; 784575#factFINAL assume true; 784512#factEXIT >#66#return; 784510#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784476#factFINAL assume true; 784453#factEXIT >#66#return; 784460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785347#factFINAL assume true; 785344#factEXIT >#66#return; 785343#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785342#factFINAL assume true; 785334#factEXIT >#66#return; 785333#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785331#factFINAL assume true; 785325#factEXIT >#66#return; 785329#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785418#factFINAL assume true; 785416#factEXIT >#66#return; 785413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785411#factFINAL assume true; 785408#factEXIT >#66#return; 782469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 782391#factFINAL assume true; 782374#factEXIT >#72#return; 782377#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785480#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785479#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785478#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785477#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784549#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784634#$Ultimate##0 ~n := #in~n; 784629#L25 assume !(~n <= 0); 782503#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785428#factFINAL assume true; 784519#factEXIT >#68#return; 784323#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784396#$Ultimate##0 ~n := #in~n; 784416#L25 assume !(~n <= 0); 783883#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783909#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784504#factFINAL assume true; 784469#factEXIT >#70#return; 782430#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 785190#$Ultimate##0 ~n := #in~n; 785201#L25 assume !(~n <= 0); 783875#L26 call #t~ret0 := fact(~n - 1);< 785198#$Ultimate##0 ~n := #in~n; 785510#L25 assume !(~n <= 0); 782501#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785194#factFINAL assume true; 785193#factEXIT >#72#return; 784814#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785539#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785538#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785537#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785536#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784567#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784634#$Ultimate##0 ~n := #in~n; 784629#L25 assume !(~n <= 0); 782503#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783970#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785088#factFINAL assume true; 785086#factEXIT >#68#return; 784226#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784396#$Ultimate##0 ~n := #in~n; 784416#L25 assume !(~n <= 0); 783883#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783929#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784394#factFINAL assume true; 784211#factEXIT >#70#return; 782406#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 785162#$Ultimate##0 ~n := #in~n; 785202#L25 assume !(~n <= 0); 783952#L26 call #t~ret0 := fact(~n - 1);< 785197#$Ultimate##0 ~n := #in~n; 785483#L25 assume !(~n <= 0); 783924#L26 call #t~ret0 := fact(~n - 1);< 783962#$Ultimate##0 ~n := #in~n; 785387#L25 assume !(~n <= 0); 782383#L26 call #t~ret0 := fact(~n - 1);< 785380#$Ultimate##0 ~n := #in~n; 785382#L25 assume !(~n <= 0); 782385#L26 call #t~ret0 := fact(~n - 1);< 785381#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785194#factFINAL assume true; 785193#factEXIT >#72#return; 784159#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785533#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785532#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785531#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785530#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784530#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784634#$Ultimate##0 ~n := #in~n; 784629#L25 assume !(~n <= 0); 782503#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785428#factFINAL assume true; 784519#factEXIT >#68#return; 784231#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784396#$Ultimate##0 ~n := #in~n; 784416#L25 assume !(~n <= 0); 783883#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783897#factFINAL assume true; 783892#factEXIT >#66#return; 783884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783889#factFINAL assume true; 783860#factEXIT >#66#return; 783887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784639#factFINAL assume true; 784636#factEXIT >#70#return; 784064#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784206#$Ultimate##0 ~n := #in~n; 784491#L25 assume !(~n <= 0); 783908#L26 call #t~ret0 := fact(~n - 1);< 783911#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784464#factFINAL assume true; 784413#factEXIT >#72#return; 784168#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785553#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785552#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785551#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785550#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 784544#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 784634#$Ultimate##0 ~n := #in~n; 784629#L25 assume !(~n <= 0); 782503#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785428#factFINAL assume true; 784519#factEXIT >#68#return; 784302#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 784396#$Ultimate##0 ~n := #in~n; 784416#L25 assume !(~n <= 0); 783883#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783897#factFINAL assume true; 783892#factEXIT >#66#return; 783884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783889#factFINAL assume true; 783860#factEXIT >#66#return; 783887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784639#factFINAL assume true; 784636#factEXIT >#70#return; 784120#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 784206#$Ultimate##0 ~n := #in~n; 784491#L25 assume ~n <= 0;#res := 1; 784209#factFINAL assume true; 784043#factEXIT >#72#return; 784190#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785616#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 785615#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785614#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785613#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 782492#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783812#$Ultimate##0 ~n := #in~n; 782475#L25 assume !(~n <= 0); 782477#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783845#factFINAL assume true; 783846#factEXIT >#74#return; 783735#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783847#$Ultimate##0 ~n := #in~n; 785482#L25 assume !(~n <= 0); 783951#L26 call #t~ret0 := fact(~n - 1);< 784585#$Ultimate##0 ~n := #in~n; 785231#L25 assume !(~n <= 0); 783950#L26 call #t~ret0 := fact(~n - 1);< 783961#$Ultimate##0 ~n := #in~n; 785520#L25 assume !(~n <= 0); 783925#L26 call #t~ret0 := fact(~n - 1);< 784401#$Ultimate##0 ~n := #in~n; 785388#L25 assume !(~n <= 0); 782380#L26 call #t~ret0 := fact(~n - 1);< 785379#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#76#return; 783786#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783844#$Ultimate##0 ~n := #in~n; 785414#L25 assume !(~n <= 0); 782449#L26 call #t~ret0 := fact(~n - 1);< 783932#$Ultimate##0 ~n := #in~n; 785230#L25 assume ~n <= 0;#res := 1; 783945#factFINAL assume true; 783898#factEXIT >#66#return; 783896#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783895#factFINAL assume true; 783819#factEXIT >#78#return; 782443#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 782444#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 782464#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785544#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785522#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783518#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783944#factFINAL assume true; 783791#factEXIT >#74#return; 783532#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783702#$Ultimate##0 ~n := #in~n; 785514#L25 assume !(~n <= 0); 783879#L26 call #t~ret0 := fact(~n - 1);< 785198#$Ultimate##0 ~n := #in~n; 785510#L25 assume !(~n <= 0); 782501#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#76#return; 783774#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783844#$Ultimate##0 ~n := #in~n; 785414#L25 assume !(~n <= 0); 782449#L26 call #t~ret0 := fact(~n - 1);< 783932#$Ultimate##0 ~n := #in~n; 785376#L25 assume !(~n <= 0); 782381#L26 call #t~ret0 := fact(~n - 1);< 782454#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783921#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783843#factFINAL assume true; 783793#factEXIT >#78#return; 783804#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785427#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785426#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785425#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785424#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783583#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783897#factFINAL assume true; 783892#factEXIT >#66#return; 783891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783818#factFINAL assume true; 783814#factEXIT >#74#return; 783631#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783702#$Ultimate##0 ~n := #in~n; 785514#L25 assume !(~n <= 0); 783879#L26 call #t~ret0 := fact(~n - 1);< 785198#$Ultimate##0 ~n := #in~n; 785510#L25 assume !(~n <= 0); 782501#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783944#factFINAL assume true; 783791#factEXIT >#76#return; 783651#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783701#$Ultimate##0 ~n := #in~n; 783920#L25 assume !(~n <= 0); 783882#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784933#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783942#factFINAL assume true; 783851#factEXIT >#78#return; 783787#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785208#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785206#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785205#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785204#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783668#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 783816#$Ultimate##0 ~n := #in~n; 785540#L25 assume !(~n <= 0); 783865#L26 call #t~ret0 := fact(~n - 1);< 785523#$Ultimate##0 ~n := #in~n; 785515#L25 assume !(~n <= 0); 783869#L26 call #t~ret0 := fact(~n - 1);< 784617#$Ultimate##0 ~n := #in~n; 785517#L25 assume !(~n <= 0); 783861#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783918#factFINAL assume true; 783914#factEXIT >#66#return; 783913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783897#factFINAL assume true; 783892#factEXIT >#66#return; 783891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783818#factFINAL assume true; 783814#factEXIT >#74#return; 783497#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 783702#$Ultimate##0 ~n := #in~n; 785514#L25 assume !(~n <= 0); 783879#L26 call #t~ret0 := fact(~n - 1);< 785198#$Ultimate##0 ~n := #in~n; 785510#L25 assume !(~n <= 0); 782501#L26 call #t~ret0 := fact(~n - 1);< 782499#$Ultimate##0 ~n := #in~n; 782502#L25 assume !(~n <= 0); 783877#L26 call #t~ret0 := fact(~n - 1);< 783933#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783957#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784595#factFINAL assume true; 784577#factEXIT >#66#return; 784580#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785361#factFINAL assume true; 783966#factEXIT >#66#return; 783968#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783944#factFINAL assume true; 783791#factEXIT >#76#return; 783642#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 783701#$Ultimate##0 ~n := #in~n; 783920#L25 assume !(~n <= 0); 783882#L26 call #t~ret0 := fact(~n - 1);< 783912#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785392#L25 assume !(~n <= 0); 782382#L26 call #t~ret0 := fact(~n - 1);< 785377#$Ultimate##0 ~n := #in~n; 785422#L25 assume ~n <= 0;#res := 1; 785421#factFINAL assume true; 782379#factEXIT >#66#return; 782386#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783972#factFINAL assume true; 783922#factEXIT >#66#return; 783928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 784940#factFINAL assume true; 784929#factEXIT >#66#return; 784932#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 785237#factFINAL assume true; 783948#factEXIT >#66#return; 783856#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 783811#factFINAL assume true; 783715#factEXIT >#78#return; 783674#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 785106#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 785105#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 785104#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 785103#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 783464#L30-5 [2023-02-17 09:43:40,998 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:40,998 INFO L85 PathProgramCache]: Analyzing trace with hash 1910239423, now seen corresponding path program 52 times [2023-02-17 09:43:40,999 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:40,999 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [430732218] [2023-02-17 09:43:40,999 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:40,999 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:41,050 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:41,050 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1774973377] [2023-02-17 09:43:41,051 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:43:41,051 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:41,051 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:41,057 INFO L229 MonitoredProcess]: Starting monitored process 253 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:41,078 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (253)] Waiting until timeout for monitored process [2023-02-17 09:43:42,410 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:43:42,411 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:42,426 INFO L263 TraceCheckSpWp]: Trace formula consists of 4114 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:43:42,438 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:42,543 INFO L134 CoverageAnalysis]: Checked inductivity of 231910 backedges. 100790 proven. 332 refuted. 0 times theorem prover too weak. 130788 trivial. 0 not checked. [2023-02-17 09:43:42,543 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:42,669 INFO L134 CoverageAnalysis]: Checked inductivity of 231910 backedges. 1334 proven. 332 refuted. 0 times theorem prover too weak. 230244 trivial. 0 not checked. [2023-02-17 09:43:42,669 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:42,669 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [430732218] [2023-02-17 09:43:42,669 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:42,669 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1774973377] [2023-02-17 09:43:42,669 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1774973377] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:42,669 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:42,670 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:43:42,670 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1073346489] [2023-02-17 09:43:42,670 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:42,670 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:42,671 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:42,671 INFO L85 PathProgramCache]: Analyzing trace with hash -1325622228, now seen corresponding path program 46 times [2023-02-17 09:43:42,671 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:42,671 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [241792891] [2023-02-17 09:43:42,671 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:42,671 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:42,695 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:42,695 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2116365264] [2023-02-17 09:43:42,695 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:43:42,696 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:42,696 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:42,700 INFO L229 MonitoredProcess]: Starting monitored process 254 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:42,701 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (254)] Waiting until timeout for monitored process [2023-02-17 09:43:43,815 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:43:43,815 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:43,824 INFO L263 TraceCheckSpWp]: Trace formula consists of 2306 conjuncts, 43 conjunts are in the unsatisfiable core [2023-02-17 09:43:43,832 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:44,107 INFO L134 CoverageAnalysis]: Checked inductivity of 86021 backedges. 20405 proven. 924 refuted. 0 times theorem prover too weak. 64692 trivial. 0 not checked. [2023-02-17 09:43:44,107 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:44,702 INFO L134 CoverageAnalysis]: Checked inductivity of 86021 backedges. 149 proven. 15235 refuted. 0 times theorem prover too weak. 70637 trivial. 0 not checked. [2023-02-17 09:43:44,703 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:44,703 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [241792891] [2023-02-17 09:43:44,703 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:44,703 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2116365264] [2023-02-17 09:43:44,703 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2116365264] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:44,703 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:44,703 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 36] total 39 [2023-02-17 09:43:44,703 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1325463604] [2023-02-17 09:43:44,703 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:44,704 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:44,704 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:44,704 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2023-02-17 09:43:44,704 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=229, Invalid=1253, Unknown=0, NotChecked=0, Total=1482 [2023-02-17 09:43:44,704 INFO L87 Difference]: Start difference. First operand 3320 states and 7001 transitions. cyclomatic complexity: 3715 Second operand has 39 states, 36 states have (on average 2.5) internal successors, (90), 36 states have internal predecessors, (90), 22 states have call successors, (35), 2 states have call predecessors, (35), 18 states have return successors, (48), 20 states have call predecessors, (48), 22 states have call successors, (48) [2023-02-17 09:43:45,999 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:46,000 INFO L93 Difference]: Finished difference Result 4521 states and 9617 transitions. [2023-02-17 09:43:46,000 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4521 states and 9617 transitions. [2023-02-17 09:43:46,028 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 1274 [2023-02-17 09:43:46,063 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4521 states to 4492 states and 9445 transitions. [2023-02-17 09:43:46,063 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 685 [2023-02-17 09:43:46,064 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 685 [2023-02-17 09:43:46,064 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4492 states and 9445 transitions. [2023-02-17 09:43:46,064 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:46,064 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4492 states and 9445 transitions. [2023-02-17 09:43:46,065 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4492 states and 9445 transitions. [2023-02-17 09:43:46,124 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4492 to 3357. [2023-02-17 09:43:46,127 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3357 states, 1896 states have (on average 1.0421940928270041) internal successors, (1976), 1877 states have internal predecessors, (1976), 1206 states have call successors, (1228), 320 states have call predecessors, (1228), 255 states have return successors, (4158), 1159 states have call predecessors, (4158), 1206 states have call successors, (4158) [2023-02-17 09:43:46,141 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3357 states to 3357 states and 7362 transitions. [2023-02-17 09:43:46,141 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3357 states and 7362 transitions. [2023-02-17 09:43:46,142 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2023-02-17 09:43:46,142 INFO L428 stractBuchiCegarLoop]: Abstraction has 3357 states and 7362 transitions. [2023-02-17 09:43:46,142 INFO L335 stractBuchiCegarLoop]: ======== Iteration 76 ============ [2023-02-17 09:43:46,142 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3357 states and 7362 transitions. [2023-02-17 09:43:46,152 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 742 [2023-02-17 09:43:46,152 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:46,152 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:46,158 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [298, 298, 211, 211, 211, 211, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:46,158 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [171, 171, 141, 141, 141, 141, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:46,158 INFO L748 eck$LassoCheckResult]: Stem: 808345#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 808265#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 808266#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 808286#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 808346#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 808871#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808870#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808868#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808869#$Ultimate##0 ~n := #in~n; 808873#L25 assume ~n <= 0;#res := 1; 808872#factFINAL assume true; 808867#factEXIT >#68#return; 808865#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808866#$Ultimate##0 ~n := #in~n; 808881#L25 assume ~n <= 0;#res := 1; 808880#factFINAL assume true; 808864#factEXIT >#70#return; 808851#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 808852#$Ultimate##0 ~n := #in~n; 808856#L25 assume ~n <= 0;#res := 1; 808855#factFINAL assume true; 808850#factEXIT >#72#return; 808848#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 808842#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 808840#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 808838#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808837#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808835#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808836#$Ultimate##0 ~n := #in~n; 808849#L25 assume !(~n <= 0); 808844#L26 call #t~ret0 := fact(~n - 1);< 808847#$Ultimate##0 ~n := #in~n; 808859#L25 assume ~n <= 0;#res := 1; 808857#factFINAL assume true; 808843#factEXIT >#66#return; 808841#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808839#factFINAL assume true; 808834#factEXIT >#74#return; 808832#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808833#$Ultimate##0 ~n := #in~n; 808863#L25 assume ~n <= 0;#res := 1; 808862#factFINAL assume true; 808831#factEXIT >#76#return; 808829#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 808830#$Ultimate##0 ~n := #in~n; 808858#L25 assume !(~n <= 0); 808845#L26 call #t~ret0 := fact(~n - 1);< 808847#$Ultimate##0 ~n := #in~n; 808859#L25 assume ~n <= 0;#res := 1; 808857#factFINAL assume true; 808843#factEXIT >#66#return; 808846#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808861#factFINAL assume true; 808828#factEXIT >#78#return; 808823#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 808822#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 808821#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 808819#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808818#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808760#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808762#$Ultimate##0 ~n := #in~n; 808799#L25 assume !(~n <= 0); 808775#L26 call #t~ret0 := fact(~n - 1);< 808776#$Ultimate##0 ~n := #in~n; 808810#L25 assume !(~n <= 0); 808774#L26 call #t~ret0 := fact(~n - 1);< 808792#$Ultimate##0 ~n := #in~n; 808809#L25 assume ~n <= 0;#res := 1; 808808#factFINAL assume true; 808805#factEXIT >#66#return; 808804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808801#factFINAL assume true; 808788#factEXIT >#66#return; 808790#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808820#factFINAL assume true; 808817#factEXIT >#74#return; 808814#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808815#$Ultimate##0 ~n := #in~n; 808827#L25 assume ~n <= 0;#res := 1; 808826#factFINAL assume true; 808813#factEXIT >#76#return; 808794#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 808795#$Ultimate##0 ~n := #in~n; 808803#L25 assume !(~n <= 0); 808789#L26 call #t~ret0 := fact(~n - 1);< 808802#$Ultimate##0 ~n := #in~n; 808853#L25 assume !(~n <= 0); 808806#L26 call #t~ret0 := fact(~n - 1);< 808807#$Ultimate##0 ~n := #in~n; 808809#L25 assume ~n <= 0;#res := 1; 808808#factFINAL assume true; 808805#factEXIT >#66#return; 808804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808801#factFINAL assume true; 808788#factEXIT >#66#return; 808791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808798#factFINAL assume true; 808793#factEXIT >#78#return; 808787#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 808782#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 808778#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 808777#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808768#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808761#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808762#$Ultimate##0 ~n := #in~n; 808799#L25 assume !(~n <= 0); 808775#L26 call #t~ret0 := fact(~n - 1);< 808776#$Ultimate##0 ~n := #in~n; 808810#L25 assume !(~n <= 0); 808774#L26 call #t~ret0 := fact(~n - 1);< 808792#$Ultimate##0 ~n := #in~n; 808810#L25 assume !(~n <= 0); 808774#L26 call #t~ret0 := fact(~n - 1);< 808792#$Ultimate##0 ~n := #in~n; 808809#L25 assume ~n <= 0;#res := 1; 808808#factFINAL assume true; 808805#factEXIT >#66#return; 808804#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808801#factFINAL assume true; 808788#factEXIT >#66#return; 808786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808781#factFINAL assume true; 808773#factEXIT >#66#return; 808772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808767#factFINAL assume true; 808759#factEXIT >#74#return; 808753#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808754#$Ultimate##0 ~n := #in~n; 808766#L25 assume ~n <= 0;#res := 1; 808758#factFINAL assume true; 808752#factEXIT >#76#return; 808736#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 808745#$Ultimate##0 ~n := #in~n; 808738#L25 assume !(~n <= 0); 808729#L26 call #t~ret0 := fact(~n - 1);< 808737#$Ultimate##0 ~n := #in~n; 808879#L25 assume !(~n <= 0); 808730#L26 call #t~ret0 := fact(~n - 1);< 808734#$Ultimate##0 ~n := #in~n; 808797#L25 assume !(~n <= 0); 808732#L26 call #t~ret0 := fact(~n - 1);< 808784#$Ultimate##0 ~n := #in~n; 808816#L25 assume ~n <= 0;#res := 1; 808796#factFINAL assume true; 808783#factEXIT >#66#return; 808779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808769#factFINAL assume true; 808763#factEXIT >#66#return; 808755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808750#factFINAL assume true; 808747#factEXIT >#66#return; 808733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808939#factFINAL assume true; 808930#factEXIT >#78#return; 808924#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 808917#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 808911#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 808874#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808718#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808715#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808716#$Ultimate##0 ~n := #in~n; 808748#L25 assume !(~n <= 0); 808731#L26 call #t~ret0 := fact(~n - 1);< 808734#$Ultimate##0 ~n := #in~n; 808797#L25 assume !(~n <= 0); 808732#L26 call #t~ret0 := fact(~n - 1);< 808784#$Ultimate##0 ~n := #in~n; 808797#L25 assume !(~n <= 0); 808732#L26 call #t~ret0 := fact(~n - 1);< 808784#$Ultimate##0 ~n := #in~n; 808797#L25 assume !(~n <= 0); 808732#L26 call #t~ret0 := fact(~n - 1);< 808784#$Ultimate##0 ~n := #in~n; 808816#L25 assume ~n <= 0;#res := 1; 808796#factFINAL assume true; 808783#factEXIT >#66#return; 808779#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808769#factFINAL assume true; 808763#factEXIT >#66#return; 808755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808750#factFINAL assume true; 808747#factEXIT >#66#return; 808744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808735#factFINAL assume true; 808728#factEXIT >#66#return; 808726#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808725#factFINAL assume true; 808714#factEXIT >#74#return; 808704#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808705#$Ultimate##0 ~n := #in~n; 808713#L25 assume ~n <= 0;#res := 1; 808711#factFINAL assume true; 808703#factEXIT >#76#return; 808697#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 808701#$Ultimate##0 ~n := #in~n; 808699#L25 assume !(~n <= 0); 808666#L26 call #t~ret0 := fact(~n - 1);< 808698#$Ultimate##0 ~n := #in~n; 808900#L25 assume !(~n <= 0); 808664#L26 call #t~ret0 := fact(~n - 1);< 808890#$Ultimate##0 ~n := #in~n; 808899#L25 assume !(~n <= 0); 808672#L26 call #t~ret0 := fact(~n - 1);< 808895#$Ultimate##0 ~n := #in~n; 808899#L25 assume !(~n <= 0); 808672#L26 call #t~ret0 := fact(~n - 1);< 808895#$Ultimate##0 ~n := #in~n; 808898#L25 assume ~n <= 0;#res := 1; 808897#factFINAL assume true; 808894#factEXIT >#66#return; 808892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808891#factFINAL assume true; 808889#factEXIT >#66#return; 808886#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808884#factFINAL assume true; 808878#factEXIT >#66#return; 808875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808695#factFINAL assume true; 808696#factEXIT >#66#return; 808746#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808983#factFINAL assume true; 808981#factEXIT >#78#return; 808980#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 808979#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 808976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 808969#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808966#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808469#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808559#$Ultimate##0 ~n := #in~n; 808558#L25 assume !(~n <= 0); 808555#L26 call #t~ret0 := fact(~n - 1);< 808557#$Ultimate##0 ~n := #in~n; 808556#L25 assume !(~n <= 0); 808552#L26 call #t~ret0 := fact(~n - 1);< 808554#$Ultimate##0 ~n := #in~n; 808553#L25 assume !(~n <= 0); 808550#L26 call #t~ret0 := fact(~n - 1);< 808551#$Ultimate##0 ~n := #in~n; 808549#L25 assume !(~n <= 0); 808545#L26 call #t~ret0 := fact(~n - 1);< 808548#$Ultimate##0 ~n := #in~n; 808549#L25 assume !(~n <= 0); 808545#L26 call #t~ret0 := fact(~n - 1);< 808548#$Ultimate##0 ~n := #in~n; 808544#L25 assume ~n <= 0;#res := 1; 808546#factFINAL assume true; 808614#factEXIT >#66#return; 808613#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808611#factFINAL assume true; 808610#factEXIT >#66#return; 808601#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808600#factFINAL assume true; 808597#factEXIT >#66#return; 808596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808595#factFINAL assume true; 808593#factEXIT >#66#return; 808594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808612#factFINAL assume true; 808609#factEXIT >#66#return; 808608#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808607#factFINAL assume true; 808468#factEXIT >#74#return; 808464#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808465#$Ultimate##0 ~n := #in~n; 808500#L25 assume ~n <= 0;#res := 1; 808467#factFINAL assume true; 808463#factEXIT >#76#return; 808256#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809118#$Ultimate##0 ~n := #in~n; 809113#L25 assume !(~n <= 0); 808481#L26 call #t~ret0 := fact(~n - 1);< 809110#$Ultimate##0 ~n := #in~n; 809139#L25 assume !(~n <= 0); 808479#L26 call #t~ret0 := fact(~n - 1);< 809117#$Ultimate##0 ~n := #in~n; 809137#L25 assume !(~n <= 0); 808480#L26 call #t~ret0 := fact(~n - 1);< 809130#$Ultimate##0 ~n := #in~n; 809147#L25 assume !(~n <= 0); 808478#L26 call #t~ret0 := fact(~n - 1);< 809105#$Ultimate##0 ~n := #in~n; 809146#L25 assume !(~n <= 0); 808477#L26 call #t~ret0 := fact(~n - 1);< 809143#$Ultimate##0 ~n := #in~n; 809145#L25 assume ~n <= 0;#res := 1; 809144#factFINAL assume true; 809142#factEXIT >#66#return; 809141#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809140#factFINAL assume true; 809134#factEXIT >#66#return; 809133#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809132#factFINAL assume true; 809129#factEXIT >#66#return; 809123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809122#factFINAL assume true; 809116#factEXIT >#66#return; 809112#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809111#factFINAL assume true; 809109#factEXIT >#66#return; 808294#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 808255#factFINAL assume true; 808257#factEXIT >#78#return; 808437#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 808436#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 808435#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 808434#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 808433#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 808432#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 808431#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808430#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808404#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808425#$Ultimate##0 ~n := #in~n; 808429#L25 assume !(~n <= 0); 809160#L26 call #t~ret0 := fact(~n - 1);< 810294#$Ultimate##0 ~n := #in~n; 810301#L25 assume ~n <= 0;#res := 1; 810299#factFINAL assume true; 810293#factEXIT >#66#return; 810289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810288#factFINAL assume true; 810286#factEXIT >#68#return; 808411#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808427#$Ultimate##0 ~n := #in~n; 808428#L25 assume ~n <= 0;#res := 1; 808426#factFINAL assume true; 808392#factEXIT >#70#return; 808424#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810275#$Ultimate##0 ~n := #in~n; 810373#L25 assume !(~n <= 0); 810370#L26 call #t~ret0 := fact(~n - 1);< 810371#$Ultimate##0 ~n := #in~n; 810448#L25 assume ~n <= 0;#res := 1; 810390#factFINAL assume true; 810369#factEXIT >#66#return; 810360#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810359#factFINAL assume true; 810274#factEXIT >#72#return; 810272#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810270#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 810268#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810266#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810265#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810235#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810264#$Ultimate##0 ~n := #in~n; 810510#L25 assume !(~n <= 0); 809754#L26 call #t~ret0 := fact(~n - 1);< 809926#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810357#factFINAL assume true; 810098#factEXIT >#68#return; 810244#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810263#$Ultimate##0 ~n := #in~n; 810512#L25 assume !(~n <= 0); 809749#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810357#factFINAL assume true; 810098#factEXIT >#70#return; 809987#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810094#$Ultimate##0 ~n := #in~n; 810319#L25 assume ~n <= 0;#res := 1; 809912#factFINAL assume true; 809982#factEXIT >#72#return; 809981#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 809980#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 809979#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 809977#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 809976#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809373#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 809955#$Ultimate##0 ~n := #in~n; 809910#L25 assume !(~n <= 0); 809703#L26 call #t~ret0 := fact(~n - 1);< 809860#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#74#return; 809637#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809661#$Ultimate##0 ~n := #in~n; 810780#L25 assume !(~n <= 0); 809752#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#76#return; 809644#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809661#$Ultimate##0 ~n := #in~n; 810780#L25 assume !(~n <= 0); 809752#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#78#return; 809652#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810300#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 810295#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810292#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810291#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809386#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810096#$Ultimate##0 ~n := #in~n; 810325#L25 assume !(~n <= 0); 809706#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#74#return; 809630#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809661#$Ultimate##0 ~n := #in~n; 810780#L25 assume !(~n <= 0); 809752#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#76#return; 809645#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810285#$Ultimate##0 ~n := #in~n; 810298#L25 assume !(~n <= 0); 809964#L26 call #t~ret0 := fact(~n - 1);< 809969#$Ultimate##0 ~n := #in~n; 811259#L25 assume !(~n <= 0); 810307#L26 call #t~ret0 := fact(~n - 1);< 810311#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#78#return; 810276#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810273#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 810271#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810269#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810267#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809447#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810096#$Ultimate##0 ~n := #in~n; 810325#L25 assume !(~n <= 0); 809706#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#74#return; 809603#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809661#$Ultimate##0 ~n := #in~n; 810780#L25 assume !(~n <= 0); 809752#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#76#return; 809448#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809621#$Ultimate##0 ~n := #in~n; 810323#L25 assume !(~n <= 0); 809733#L26 call #t~ret0 := fact(~n - 1);< 809872#$Ultimate##0 ~n := #in~n; 810320#L25 assume !(~n <= 0); 809868#L26 call #t~ret0 := fact(~n - 1);< 809971#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#78#return; 809957#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 809913#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 809862#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 809761#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 809743#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809670#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809740#factFINAL assume true; 809665#factEXIT >#74#return; 809633#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809661#$Ultimate##0 ~n := #in~n; 810780#L25 assume !(~n <= 0); 809752#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#76#return; 809457#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809621#$Ultimate##0 ~n := #in~n; 810323#L25 assume !(~n <= 0); 809733#L26 call #t~ret0 := fact(~n - 1);< 809872#$Ultimate##0 ~n := #in~n; 810320#L25 assume !(~n <= 0); 809868#L26 call #t~ret0 := fact(~n - 1);< 809971#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 811259#L25 assume !(~n <= 0); 810307#L26 call #t~ret0 := fact(~n - 1);< 810311#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#78#return; 809371#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 809370#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 809369#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 809368#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 809345#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809326#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808235#$Ultimate##0 ~n := #in~n; 811183#L25 assume !(~n <= 0); 809364#L26 call #t~ret0 := fact(~n - 1);< 810559#$Ultimate##0 ~n := #in~n; 811179#L25 assume !(~n <= 0); 809365#L26 call #t~ret0 := fact(~n - 1);< 810563#$Ultimate##0 ~n := #in~n; 810658#L25 assume !(~n <= 0); 809362#L26 call #t~ret0 := fact(~n - 1);< 810568#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810575#factFINAL assume true; 810572#factEXIT >#66#return; 810571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810569#factFINAL assume true; 810567#factEXIT >#66#return; 810566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810564#factFINAL assume true; 810561#factEXIT >#66#return; 810560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810558#factFINAL assume true; 810554#factEXIT >#66#return; 810555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810660#factFINAL assume true; 809325#factEXIT >#74#return; 808273#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808342#$Ultimate##0 ~n := #in~n; 810678#L25 assume !(~n <= 0); 808271#L26 call #t~ret0 := fact(~n - 1);< 808275#$Ultimate##0 ~n := #in~n; 810699#L25 assume ~n <= 0;#res := 1; 810698#factFINAL assume true; 810697#factEXIT >#66#return; 810670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810669#factFINAL assume true; 810606#factEXIT >#76#return; 809205#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810661#$Ultimate##0 ~n := #in~n; 811180#L25 assume !(~n <= 0); 809359#L26 call #t~ret0 := fact(~n - 1);< 810565#$Ultimate##0 ~n := #in~n; 810585#L25 assume !(~n <= 0); 809353#L26 call #t~ret0 := fact(~n - 1);< 810568#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810575#factFINAL assume true; 810572#factEXIT >#66#return; 810571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810569#factFINAL assume true; 810567#factEXIT >#66#return; 810566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810564#factFINAL assume true; 810561#factEXIT >#66#return; 810560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810558#factFINAL assume true; 810554#factEXIT >#66#return; 810555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810660#factFINAL assume true; 809325#factEXIT >#78#return; 809224#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811240#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811238#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811236#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 811234#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 811232#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 811231#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810356#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810353#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810354#$Ultimate##0 ~n := #in~n; 810462#L25 assume !(~n <= 0); 809161#L26 call #t~ret0 := fact(~n - 1);< 810389#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810494#L25 assume ~n <= 0;#res := 1; 810493#factFINAL assume true; 810469#factEXIT >#66#return; 810463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810459#factFINAL assume true; 810387#factEXIT >#66#return; 810368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810355#factFINAL assume true; 810352#factEXIT >#68#return; 808405#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808427#$Ultimate##0 ~n := #in~n; 808428#L25 assume ~n <= 0;#res := 1; 808426#factFINAL assume true; 808392#factEXIT >#70#return; 808421#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810350#$Ultimate##0 ~n := #in~n; 810458#L25 assume !(~n <= 0); 810382#L26 call #t~ret0 := fact(~n - 1);< 810385#$Ultimate##0 ~n := #in~n; 810450#L25 assume !(~n <= 0); 810465#L26 call #t~ret0 := fact(~n - 1);< 810468#$Ultimate##0 ~n := #in~n; 810472#L25 assume ~n <= 0;#res := 1; 810471#factFINAL assume true; 810464#factEXIT >#66#return; 810461#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810445#factFINAL assume true; 810378#factEXIT >#66#return; 810376#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810367#factFINAL assume true; 810349#factEXIT >#72#return; 810347#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810345#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 810343#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810340#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810337#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810330#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810335#$Ultimate##0 ~n := #in~n; 810342#L25 assume !(~n <= 0); 809866#L26 call #t~ret0 := fact(~n - 1);< 809971#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810334#factFINAL assume true; 810329#factEXIT >#68#return; 810142#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810332#$Ultimate##0 ~n := #in~n; 810501#L25 assume !(~n <= 0); 809707#L26 call #t~ret0 := fact(~n - 1);< 810653#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809756#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810357#factFINAL assume true; 810098#factEXIT >#70#return; 809778#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810327#$Ultimate##0 ~n := #in~n; 810801#L25 assume !(~n <= 0); 809753#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810358#factFINAL assume true; 810351#factEXIT >#72#return; 810348#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810346#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 810344#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810341#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810338#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810331#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810335#$Ultimate##0 ~n := #in~n; 810342#L25 assume !(~n <= 0); 809866#L26 call #t~ret0 := fact(~n - 1);< 809971#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810334#factFINAL assume true; 810329#factEXIT >#68#return; 810174#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810332#$Ultimate##0 ~n := #in~n; 810501#L25 assume !(~n <= 0); 809707#L26 call #t~ret0 := fact(~n - 1);< 810653#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810334#factFINAL assume true; 810329#factEXIT >#70#return; 809798#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810327#$Ultimate##0 ~n := #in~n; 810801#L25 assume ~n <= 0;#res := 1; 809912#factFINAL assume true; 809982#factEXIT >#72#return; 810080#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810326#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 810324#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810322#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810321#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809527#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810096#$Ultimate##0 ~n := #in~n; 810325#L25 assume !(~n <= 0); 809706#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#74#return; 809528#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808344#$Ultimate##0 ~n := #in~n; 810719#L25 assume !(~n <= 0); 809712#L26 call #t~ret0 := fact(~n - 1);< 809970#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#76#return; 809635#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810297#$Ultimate##0 ~n := #in~n; 810296#L25 assume !(~n <= 0); 809751#L26 call #t~ret0 := fact(~n - 1);< 810290#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#78#return; 809649#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810339#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 810336#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810333#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810328#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809532#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810096#$Ultimate##0 ~n := #in~n; 810325#L25 assume !(~n <= 0); 809706#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#74#return; 808343#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808344#$Ultimate##0 ~n := #in~n; 810719#L25 assume !(~n <= 0); 809712#L26 call #t~ret0 := fact(~n - 1);< 809970#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#76#return; 809632#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810297#$Ultimate##0 ~n := #in~n; 810296#L25 assume !(~n <= 0); 809751#L26 call #t~ret0 := fact(~n - 1);< 810290#$Ultimate##0 ~n := #in~n; 811259#L25 assume !(~n <= 0); 810307#L26 call #t~ret0 := fact(~n - 1);< 810311#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#78#return; 810278#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810386#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 810377#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810375#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810374#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809687#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809740#factFINAL assume true; 809665#factEXIT >#74#return; 809546#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808344#$Ultimate##0 ~n := #in~n; 810719#L25 assume !(~n <= 0); 809712#L26 call #t~ret0 := fact(~n - 1);< 809970#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#76#return; 809543#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809621#$Ultimate##0 ~n := #in~n; 810323#L25 assume !(~n <= 0); 809733#L26 call #t~ret0 := fact(~n - 1);< 809872#$Ultimate##0 ~n := #in~n; 810320#L25 assume !(~n <= 0); 809868#L26 call #t~ret0 := fact(~n - 1);< 809971#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#78#return; 809616#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810744#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 810742#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810740#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810738#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809689#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809740#factFINAL assume true; 809665#factEXIT >#74#return; 809562#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808344#$Ultimate##0 ~n := #in~n; 810719#L25 assume !(~n <= 0); 809712#L26 call #t~ret0 := fact(~n - 1);< 809970#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#76#return; 809565#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809621#$Ultimate##0 ~n := #in~n; 810323#L25 assume !(~n <= 0); 809733#L26 call #t~ret0 := fact(~n - 1);< 809872#$Ultimate##0 ~n := #in~n; 810320#L25 assume !(~n <= 0); 809868#L26 call #t~ret0 := fact(~n - 1);< 809971#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 811259#L25 assume !(~n <= 0); 810307#L26 call #t~ret0 := fact(~n - 1);< 810311#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#78#return; 809599#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810591#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 810590#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810588#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810587#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809333#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808235#$Ultimate##0 ~n := #in~n; 811183#L25 assume !(~n <= 0); 809364#L26 call #t~ret0 := fact(~n - 1);< 810559#$Ultimate##0 ~n := #in~n; 811179#L25 assume !(~n <= 0); 809365#L26 call #t~ret0 := fact(~n - 1);< 810563#$Ultimate##0 ~n := #in~n; 810658#L25 assume !(~n <= 0); 809362#L26 call #t~ret0 := fact(~n - 1);< 810568#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810575#factFINAL assume true; 810572#factEXIT >#66#return; 810571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810569#factFINAL assume true; 810567#factEXIT >#66#return; 810566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810564#factFINAL assume true; 810561#factEXIT >#66#return; 810560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810558#factFINAL assume true; 810554#factEXIT >#66#return; 810555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810660#factFINAL assume true; 809325#factEXIT >#74#return; 809212#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810583#$Ultimate##0 ~n := #in~n; 810581#L25 assume !(~n <= 0); 809350#L26 call #t~ret0 := fact(~n - 1);< 810580#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810578#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811059#factFINAL assume true; 811005#factEXIT >#76#return; 809219#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810661#$Ultimate##0 ~n := #in~n; 811180#L25 assume !(~n <= 0); 809359#L26 call #t~ret0 := fact(~n - 1);< 810565#$Ultimate##0 ~n := #in~n; 810585#L25 assume !(~n <= 0); 809353#L26 call #t~ret0 := fact(~n - 1);< 810568#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810575#factFINAL assume true; 810572#factEXIT >#66#return; 810571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810569#factFINAL assume true; 810567#factEXIT >#66#return; 810566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810564#factFINAL assume true; 810561#factEXIT >#66#return; 810560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810558#factFINAL assume true; 810554#factEXIT >#66#return; 810555#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810660#factFINAL assume true; 809325#factEXIT >#78#return; 809226#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811239#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811237#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811235#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 811233#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 811230#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 811229#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 808289#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808290#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808262#$Ultimate##0 ~n := #in~n; 810476#L25 assume !(~n <= 0); 809154#L26 call #t~ret0 := fact(~n - 1);< 810389#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810494#L25 assume ~n <= 0;#res := 1; 810493#factFINAL assume true; 810469#factEXIT >#66#return; 810463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810459#factFINAL assume true; 810387#factEXIT >#66#return; 810388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810536#factFINAL assume true; 810530#factEXIT >#66#return; 810531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810889#factFINAL assume true; 810887#factEXIT >#66#return; 810885#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810883#factFINAL assume true; 810817#factEXIT >#66#return; 810818#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810909#factFINAL assume true; 810907#factEXIT >#68#return; 808399#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808427#$Ultimate##0 ~n := #in~n; 808428#L25 assume ~n <= 0;#res := 1; 808426#factFINAL assume true; 808392#factEXIT >#70#return; 808416#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810550#$Ultimate##0 ~n := #in~n; 811126#L25 assume !(~n <= 0); 811072#L26 call #t~ret0 := fact(~n - 1);< 811075#$Ultimate##0 ~n := #in~n; 811114#L25 assume !(~n <= 0); 811092#L26 call #t~ret0 := fact(~n - 1);< 811095#$Ultimate##0 ~n := #in~n; 811219#L25 assume !(~n <= 0); 811108#L26 call #t~ret0 := fact(~n - 1);< 811110#$Ultimate##0 ~n := #in~n; 811210#L25 assume !(~n <= 0); 811119#L26 call #t~ret0 := fact(~n - 1);< 811120#$Ultimate##0 ~n := #in~n; 811135#L25 assume !(~n <= 0); 811128#L26 call #t~ret0 := fact(~n - 1);< 811129#$Ultimate##0 ~n := #in~n; 811134#L25 assume ~n <= 0;#res := 1; 811132#factFINAL assume true; 811127#factEXIT >#66#return; 811125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811123#factFINAL assume true; 811117#factEXIT >#66#return; 811116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811115#factFINAL assume true; 811107#factEXIT >#66#return; 811105#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811100#factFINAL assume true; 811091#factEXIT >#66#return; 811090#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811087#factFINAL assume true; 811065#factEXIT >#66#return; 811063#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811061#factFINAL assume true; 811025#factEXIT >#72#return; 811017#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811278#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811208#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811206#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811198#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808242#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810939#$Ultimate##0 ~n := #in~n; 810958#L25 assume !(~n <= 0); 810950#L26 call #t~ret0 := fact(~n - 1);< 810954#$Ultimate##0 ~n := #in~n; 811057#L25 assume !(~n <= 0); 810949#L26 call #t~ret0 := fact(~n - 1);< 810991#$Ultimate##0 ~n := #in~n; 811002#L25 assume !(~n <= 0); 810946#L26 call #t~ret0 := fact(~n - 1);< 810999#$Ultimate##0 ~n := #in~n; 811002#L25 assume !(~n <= 0); 810946#L26 call #t~ret0 := fact(~n - 1);< 810999#$Ultimate##0 ~n := #in~n; 811003#L25 assume ~n <= 0;#res := 1; 811001#factFINAL assume true; 810997#factEXIT >#66#return; 810996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810994#factFINAL assume true; 810989#factEXIT >#66#return; 810986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810983#factFINAL assume true; 810976#factEXIT >#66#return; 810969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810968#factFINAL assume true; 810965#factEXIT >#66#return; 810966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811200#factFINAL assume true; 811197#factEXIT >#68#return; 810628#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808314#$Ultimate##0 ~n := #in~n; 810651#L25 assume ~n <= 0;#res := 1; 810650#factFINAL assume true; 810627#factEXIT >#70#return; 810642#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810677#$Ultimate##0 ~n := #in~n; 810675#L25 assume !(~n <= 0); 809719#L26 call #t~ret0 := fact(~n - 1);< 810673#$Ultimate##0 ~n := #in~n; 810671#L25 assume !(~n <= 0); 809727#L26 call #t~ret0 := fact(~n - 1);< 809968#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809737#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811202#factFINAL assume true; 811193#factEXIT >#72#return; 811047#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811191#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811190#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811189#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810582#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810439#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810444#$Ultimate##0 ~n := #in~n; 810498#L25 assume !(~n <= 0); 809701#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810747#factFINAL assume true; 810739#factEXIT >#68#return; 810255#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810332#$Ultimate##0 ~n := #in~n; 810501#L25 assume !(~n <= 0); 809707#L26 call #t~ret0 := fact(~n - 1);< 810653#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810334#factFINAL assume true; 810329#factEXIT >#70#return; 809985#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810313#$Ultimate##0 ~n := #in~n; 810305#L25 assume ~n <= 0;#res := 1; 809912#factFINAL assume true; 809982#factEXIT >#72#return; 810040#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 810746#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 810745#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 810743#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810741#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810396#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810444#$Ultimate##0 ~n := #in~n; 810498#L25 assume !(~n <= 0); 809701#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809734#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810747#factFINAL assume true; 810739#factEXIT >#68#return; 810119#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810332#$Ultimate##0 ~n := #in~n; 810501#L25 assume !(~n <= 0); 809707#L26 call #t~ret0 := fact(~n - 1);< 810653#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809869#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810456#factFINAL assume true; 810392#factEXIT >#70#return; 809792#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810327#$Ultimate##0 ~n := #in~n; 810801#L25 assume ~n <= 0;#res := 1; 809912#factFINAL assume true; 809982#factEXIT >#72#return; 810048#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811245#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811244#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811242#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809446#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 809623#$Ultimate##0 ~n := #in~n; 810759#L25 assume !(~n <= 0); 809726#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#74#return; 809456#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810676#$Ultimate##0 ~n := #in~n; 810674#L25 assume !(~n <= 0); 809730#L26 call #t~ret0 := fact(~n - 1);< 810673#$Ultimate##0 ~n := #in~n; 810671#L25 assume !(~n <= 0); 809727#L26 call #t~ret0 := fact(~n - 1);< 809968#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#76#return; 809638#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809661#$Ultimate##0 ~n := #in~n; 810780#L25 assume !(~n <= 0); 809752#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#78#return; 809653#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811186#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811185#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811184#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811182#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809680#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809740#factFINAL assume true; 809665#factEXIT >#74#return; 809519#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810676#$Ultimate##0 ~n := #in~n; 810674#L25 assume !(~n <= 0); 809730#L26 call #t~ret0 := fact(~n - 1);< 810673#$Ultimate##0 ~n := #in~n; 810671#L25 assume !(~n <= 0); 809727#L26 call #t~ret0 := fact(~n - 1);< 809968#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#76#return; 809521#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809954#$Ultimate##0 ~n := #in~n; 809909#L25 assume !(~n <= 0); 809715#L26 call #t~ret0 := fact(~n - 1);< 809759#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#78#return; 810284#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811247#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811228#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811227#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811226#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809686#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809740#factFINAL assume true; 809665#factEXIT >#74#return; 809549#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810676#$Ultimate##0 ~n := #in~n; 810674#L25 assume !(~n <= 0); 809730#L26 call #t~ret0 := fact(~n - 1);< 810673#$Ultimate##0 ~n := #in~n; 810671#L25 assume !(~n <= 0); 809727#L26 call #t~ret0 := fact(~n - 1);< 809968#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#76#return; 809561#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809954#$Ultimate##0 ~n := #in~n; 809909#L25 assume !(~n <= 0); 809715#L26 call #t~ret0 := fact(~n - 1);< 809759#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809870#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810095#factFINAL assume true; 809959#factEXIT >#78#return; 809601#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811299#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811298#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811297#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811281#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809699#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810862#factFINAL assume true; 810856#factEXIT >#66#return; 810858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810798#factFINAL assume true; 810792#factEXIT >#66#return; 810794#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810788#factFINAL assume true; 810789#factEXIT >#74#return; 809416#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809741#$Ultimate##0 ~n := #in~n; 810852#L25 assume !(~n <= 0); 809714#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#76#return; 809451#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809955#$Ultimate##0 ~n := #in~n; 809910#L25 assume !(~n <= 0); 809703#L26 call #t~ret0 := fact(~n - 1);< 809860#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#78#return; 809605#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811150#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811149#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811148#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811147#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809327#L30-5 [2023-02-17 09:43:46,159 INFO L750 eck$LassoCheckResult]: Loop: 809327#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808235#$Ultimate##0 ~n := #in~n; 811183#L25 assume !(~n <= 0); 809364#L26 call #t~ret0 := fact(~n - 1);< 810559#$Ultimate##0 ~n := #in~n; 811179#L25 assume !(~n <= 0); 809365#L26 call #t~ret0 := fact(~n - 1);< 810563#$Ultimate##0 ~n := #in~n; 810658#L25 assume !(~n <= 0); 809362#L26 call #t~ret0 := fact(~n - 1);< 810568#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810575#factFINAL assume true; 810572#factEXIT >#66#return; 810571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810569#factFINAL assume true; 810567#factEXIT >#66#return; 810566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810564#factFINAL assume true; 810561#factEXIT >#66#return; 810560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810558#factFINAL assume true; 810554#factEXIT >#66#return; 810552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810539#factFINAL assume true; 810534#factEXIT >#66#return; 810529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810526#factFINAL assume true; 810520#factEXIT >#66#return; 810507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810614#factFINAL assume true; 810611#factEXIT >#74#return; 809197#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809322#$Ultimate##0 ~n := #in~n; 810656#L25 assume !(~n <= 0); 809356#L26 call #t~ret0 := fact(~n - 1);< 810570#$Ultimate##0 ~n := #in~n; 810599#L25 assume !(~n <= 0); 809360#L26 call #t~ret0 := fact(~n - 1);< 810574#$Ultimate##0 ~n := #in~n; 810585#L25 assume !(~n <= 0); 809353#L26 call #t~ret0 := fact(~n - 1);< 810568#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810575#factFINAL assume true; 810572#factEXIT >#66#return; 810571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810569#factFINAL assume true; 810567#factEXIT >#66#return; 809337#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809324#factFINAL assume true; 809320#factEXIT >#76#return; 809217#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809227#$Ultimate##0 ~n := #in~n; 810854#L25 assume !(~n <= 0); 809349#L26 call #t~ret0 := fact(~n - 1);< 810700#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810584#L25 assume !(~n <= 0); 809358#L26 call #t~ret0 := fact(~n - 1);< 810664#$Ultimate##0 ~n := #in~n; 810667#L25 assume ~n <= 0;#res := 1; 810666#factFINAL assume true; 810663#factEXIT >#66#return; 810657#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810579#factFINAL assume true; 810577#factEXIT >#66#return; 810576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810575#factFINAL assume true; 810572#factEXIT >#66#return; 810571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810569#factFINAL assume true; 810567#factEXIT >#66#return; 810566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810564#factFINAL assume true; 810561#factEXIT >#66#return; 810560#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810558#factFINAL assume true; 810554#factEXIT >#66#return; 810552#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810539#factFINAL assume true; 810534#factEXIT >#66#return; 810529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810526#factFINAL assume true; 810520#factEXIT >#66#return; 810518#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810517#factFINAL assume true; 810506#factEXIT >#66#return; 809366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810364#factFINAL assume true; 809347#factEXIT >#66#return; 809344#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809341#factFINAL assume true; 809340#factEXIT >#78#return; 809225#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811146#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811145#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811144#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 811143#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 811142#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 811141#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811082#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808633#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808635#$Ultimate##0 ~n := #in~n; 809168#L25 assume !(~n <= 0); 809155#L26 call #t~ret0 := fact(~n - 1);< 810525#$Ultimate##0 ~n := #in~n; 810502#L25 assume !(~n <= 0); 809163#L26 call #t~ret0 := fact(~n - 1);< 810460#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810302#L25 assume !(~n <= 0); 809159#L26 call #t~ret0 := fact(~n - 1);< 810470#$Ultimate##0 ~n := #in~n; 810494#L25 assume ~n <= 0;#res := 1; 810493#factFINAL assume true; 810469#factEXIT >#66#return; 810463#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810459#factFINAL assume true; 810387#factEXIT >#66#return; 810388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810536#factFINAL assume true; 810530#factEXIT >#66#return; 810531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810889#factFINAL assume true; 810887#factEXIT >#66#return; 810885#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810883#factFINAL assume true; 810817#factEXIT >#66#return; 810816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810815#factFINAL assume true; 810811#factEXIT >#66#return; 810812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810823#factFINAL assume true; 810822#factEXIT >#66#return; 810821#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810820#factFINAL assume true; 810819#factEXIT >#68#return; 808396#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808425#$Ultimate##0 ~n := #in~n; 808429#L25 assume ~n <= 0;#res := 1; 808426#factFINAL assume true; 808392#factEXIT >#70#return; 808354#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 808391#$Ultimate##0 ~n := #in~n; 811277#L25 assume !(~n <= 0); 811084#L26 call #t~ret0 := fact(~n - 1);< 811137#$Ultimate##0 ~n := #in~n; 811136#L25 assume !(~n <= 0); 811077#L26 call #t~ret0 := fact(~n - 1);< 811086#$Ultimate##0 ~n := #in~n; 811102#L25 assume !(~n <= 0); 811067#L26 call #t~ret0 := fact(~n - 1);< 811088#$Ultimate##0 ~n := #in~n; 811214#L25 assume !(~n <= 0); 811069#L26 call #t~ret0 := fact(~n - 1);< 811096#$Ultimate##0 ~n := #in~n; 811213#L25 assume !(~n <= 0); 811068#L26 call #t~ret0 := fact(~n - 1);< 811112#$Ultimate##0 ~n := #in~n; 811209#L25 assume !(~n <= 0); 811073#L26 call #t~ret0 := fact(~n - 1);< 811122#$Ultimate##0 ~n := #in~n; 811133#L25 assume !(~n <= 0); 811071#L26 call #t~ret0 := fact(~n - 1);< 811131#$Ultimate##0 ~n := #in~n; 811133#L25 assume !(~n <= 0); 811071#L26 call #t~ret0 := fact(~n - 1);< 811131#$Ultimate##0 ~n := #in~n; 811134#L25 assume ~n <= 0;#res := 1; 811132#factFINAL assume true; 811127#factEXIT >#66#return; 811125#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811123#factFINAL assume true; 811117#factEXIT >#66#return; 811116#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811115#factFINAL assume true; 811107#factEXIT >#66#return; 811105#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811100#factFINAL assume true; 811091#factEXIT >#66#return; 811090#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811087#factFINAL assume true; 811065#factEXIT >#66#return; 811074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811083#factFINAL assume true; 811076#factEXIT >#66#return; 811079#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811291#factFINAL assume true; 811290#factEXIT >#66#return; 811275#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811307#factFINAL assume true; 811274#factEXIT >#66#return; 811273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811272#factFINAL assume true; 811207#factEXIT >#72#return; 811016#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811170#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811166#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811165#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 810970#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 808239#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810939#$Ultimate##0 ~n := #in~n; 810958#L25 assume !(~n <= 0); 810950#L26 call #t~ret0 := fact(~n - 1);< 810954#$Ultimate##0 ~n := #in~n; 811057#L25 assume !(~n <= 0); 810949#L26 call #t~ret0 := fact(~n - 1);< 810991#$Ultimate##0 ~n := #in~n; 811002#L25 assume !(~n <= 0); 810946#L26 call #t~ret0 := fact(~n - 1);< 810999#$Ultimate##0 ~n := #in~n; 811002#L25 assume !(~n <= 0); 810946#L26 call #t~ret0 := fact(~n - 1);< 810999#$Ultimate##0 ~n := #in~n; 811003#L25 assume ~n <= 0;#res := 1; 811001#factFINAL assume true; 810997#factEXIT >#66#return; 810996#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810994#factFINAL assume true; 810989#factEXIT >#66#return; 810986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810983#factFINAL assume true; 810976#factEXIT >#66#return; 810969#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810968#factFINAL assume true; 810965#factEXIT >#66#return; 810966#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811200#factFINAL assume true; 811197#factEXIT >#68#return; 808313#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808314#$Ultimate##0 ~n := #in~n; 810651#L25 assume ~n <= 0;#res := 1; 810650#factFINAL assume true; 810627#factEXIT >#70#return; 810645#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810677#$Ultimate##0 ~n := #in~n; 810675#L25 assume !(~n <= 0); 809719#L26 call #t~ret0 := fact(~n - 1);< 810673#$Ultimate##0 ~n := #in~n; 810671#L25 assume !(~n <= 0); 809727#L26 call #t~ret0 := fact(~n - 1);< 809968#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 811259#L25 assume !(~n <= 0); 810307#L26 call #t~ret0 := fact(~n - 1);< 810311#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811195#factFINAL assume true; 811192#factEXIT >#72#return; 808250#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811393#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811391#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811389#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811386#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810397#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810444#$Ultimate##0 ~n := #in~n; 810498#L25 assume !(~n <= 0); 809701#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811341#factFINAL assume true; 811310#factEXIT >#68#return; 810137#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808316#$Ultimate##0 ~n := #in~n; 810665#L25 assume !(~n <= 0); 809722#L26 call #t~ret0 := fact(~n - 1);< 809860#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809967#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810334#factFINAL assume true; 810329#factEXIT >#70#return; 809924#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810861#$Ultimate##0 ~n := #in~n; 810860#L25 assume !(~n <= 0); 809710#L26 call #t~ret0 := fact(~n - 1);< 809925#$Ultimate##0 ~n := #in~n; 810758#L25 assume !(~n <= 0); 809708#L26 call #t~ret0 := fact(~n - 1);< 809970#$Ultimate##0 ~n := #in~n; 810315#L25 assume !(~n <= 0); 809702#L26 call #t~ret0 := fact(~n - 1);< 810308#$Ultimate##0 ~n := #in~n; 810316#L25 assume !(~n <= 0); 809867#L26 call #t~ret0 := fact(~n - 1);< 810312#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 811259#L25 assume !(~n <= 0); 810307#L26 call #t~ret0 := fact(~n - 1);< 810311#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810769#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811468#factFINAL assume true; 811374#factEXIT >#72#return; 811371#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811543#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811542#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811541#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811540#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810400#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810444#$Ultimate##0 ~n := #in~n; 810498#L25 assume !(~n <= 0); 809701#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810862#factFINAL assume true; 810856#factEXIT >#66#return; 810857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811312#factFINAL assume true; 811313#factEXIT >#68#return; 810148#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808316#$Ultimate##0 ~n := #in~n; 810665#L25 assume !(~n <= 0); 809722#L26 call #t~ret0 := fact(~n - 1);< 809860#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811341#factFINAL assume true; 811310#factEXIT >#70#return; 808324#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 808318#$Ultimate##0 ~n := #in~n; 808323#L25 assume ~n <= 0;#res := 1; 809912#factFINAL assume true; 809982#factEXIT >#72#return; 810059#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811538#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811536#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811534#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811533#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 810413#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 810444#$Ultimate##0 ~n := #in~n; 810498#L25 assume !(~n <= 0); 809701#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811341#factFINAL assume true; 811310#factEXIT >#68#return; 810238#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 808316#$Ultimate##0 ~n := #in~n; 810665#L25 assume !(~n <= 0); 809722#L26 call #t~ret0 := fact(~n - 1);< 809860#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810767#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 811341#factFINAL assume true; 811310#factEXIT >#70#return; 809769#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810327#$Ultimate##0 ~n := #in~n; 810801#L25 assume ~n <= 0;#res := 1; 809912#factFINAL assume true; 809982#factEXIT >#72#return; 810069#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811529#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 811527#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811523#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811181#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809491#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 809623#$Ultimate##0 ~n := #in~n; 810759#L25 assume !(~n <= 0); 809726#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#74#return; 809515#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 810505#$Ultimate##0 ~n := #in~n; 810504#L25 assume !(~n <= 0); 809716#L26 call #t~ret0 := fact(~n - 1);< 810503#$Ultimate##0 ~n := #in~n; 810499#L25 assume !(~n <= 0); 809717#L26 call #t~ret0 := fact(~n - 1);< 809872#$Ultimate##0 ~n := #in~n; 810320#L25 assume !(~n <= 0); 809868#L26 call #t~ret0 := fact(~n - 1);< 809971#$Ultimate##0 ~n := #in~n; 811246#L25 assume !(~n <= 0); 809962#L26 call #t~ret0 := fact(~n - 1);< 810309#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#76#return; 809611#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809661#$Ultimate##0 ~n := #in~n; 810780#L25 assume !(~n <= 0); 809752#L26 call #t~ret0 := fact(~n - 1);< 809758#$Ultimate##0 ~n := #in~n; 809874#L25 assume ~n <= 0;#res := 1; 809763#factFINAL assume true; 809748#factEXIT >#66#return; 809739#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809663#factFINAL assume true; 809625#factEXIT >#78#return; 809654#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811305#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811306#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811300#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811301#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809683#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810764#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810763#factFINAL assume true; 810589#factEXIT >#74#return; 809533#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809624#$Ultimate##0 ~n := #in~n; 810840#L25 assume !(~n <= 0); 809725#L26 call #t~ret0 := fact(~n - 1);< 809861#$Ultimate##0 ~n := #in~n; 810760#L25 assume !(~n <= 0); 809724#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#76#return; 809614#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 810297#$Ultimate##0 ~n := #in~n; 810296#L25 assume !(~n <= 0); 809751#L26 call #t~ret0 := fact(~n - 1);< 810290#$Ultimate##0 ~n := #in~n; 811259#L25 assume !(~n <= 0); 810307#L26 call #t~ret0 := fact(~n - 1);< 810311#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809965#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810287#factFINAL assume true; 810277#factEXIT >#78#return; 810280#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811412#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811410#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811408#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811407#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809697#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810862#factFINAL assume true; 810856#factEXIT >#66#return; 810858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810798#factFINAL assume true; 810792#factEXIT >#66#return; 810795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810864#factFINAL assume true; 810833#factEXIT >#66#return; 810790#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810791#factFINAL assume true; 810592#factEXIT >#74#return; 809390#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809624#$Ultimate##0 ~n := #in~n; 810840#L25 assume !(~n <= 0); 809725#L26 call #t~ret0 := fact(~n - 1);< 809861#$Ultimate##0 ~n := #in~n; 810760#L25 assume !(~n <= 0); 809724#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#76#return; 809423#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809955#$Ultimate##0 ~n := #in~n; 809910#L25 assume !(~n <= 0); 809703#L26 call #t~ret0 := fact(~n - 1);< 809860#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#78#return; 808269#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 808270#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 808288#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811329#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811151#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809671#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 808237#$Ultimate##0 ~n := #in~n; 810926#L25 assume !(~n <= 0); 809854#L26 call #t~ret0 := fact(~n - 1);< 809859#$Ultimate##0 ~n := #in~n; 810679#L25 assume !(~n <= 0); 809711#L26 call #t~ret0 := fact(~n - 1);< 809974#$Ultimate##0 ~n := #in~n; 810925#L25 assume !(~n <= 0); 809709#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809875#factFINAL assume true; 809850#factEXIT >#66#return; 809857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810773#factFINAL assume true; 810766#factEXIT >#66#return; 810768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810862#factFINAL assume true; 810856#factEXIT >#66#return; 810858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810798#factFINAL assume true; 810792#factEXIT >#66#return; 810795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810864#factFINAL assume true; 810833#factEXIT >#66#return; 810713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810830#factFINAL assume true; 810702#factEXIT >#66#return; 810687#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810686#factFINAL assume true; 810685#factEXIT >#74#return; 809482#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 809624#$Ultimate##0 ~n := #in~n; 810840#L25 assume !(~n <= 0); 809725#L26 call #t~ret0 := fact(~n - 1);< 809861#$Ultimate##0 ~n := #in~n; 810760#L25 assume !(~n <= 0); 809724#L26 call #t~ret0 := fact(~n - 1);< 809930#$Ultimate##0 ~n := #in~n; 810757#L25 assume !(~n <= 0); 809723#L26 call #t~ret0 := fact(~n - 1);< 809738#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#76#return; 809451#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 809955#$Ultimate##0 ~n := #in~n; 809910#L25 assume !(~n <= 0); 809703#L26 call #t~ret0 := fact(~n - 1);< 809860#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810361#L25 assume !(~n <= 0); 809718#L26 call #t~ret0 := fact(~n - 1);< 810775#$Ultimate##0 ~n := #in~n; 810317#L25 assume ~n <= 0;#res := 1; 810314#factFINAL assume true; 810306#factEXIT >#66#return; 810304#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 810303#factFINAL assume true; 809960#factEXIT >#66#return; 809958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809914#factFINAL assume true; 809863#factEXIT >#66#return; 809762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809744#factFINAL assume true; 809700#factEXIT >#66#return; 809662#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 809622#factFINAL assume true; 809372#factEXIT >#78#return; 809605#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 811150#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 811149#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 811148#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 811147#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 809327#L30-5 [2023-02-17 09:43:46,159 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:46,159 INFO L85 PathProgramCache]: Analyzing trace with hash 820404167, now seen corresponding path program 53 times [2023-02-17 09:43:46,160 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:46,160 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1545806270] [2023-02-17 09:43:46,160 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:46,160 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:46,195 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:46,196 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [605016550] [2023-02-17 09:43:46,196 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:43:46,196 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:46,196 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:46,199 INFO L229 MonitoredProcess]: Starting monitored process 255 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:46,201 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (255)] Waiting until timeout for monitored process [2023-02-17 09:43:47,459 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 27 check-sat command(s) [2023-02-17 09:43:47,459 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:47,466 INFO L263 TraceCheckSpWp]: Trace formula consists of 1578 conjuncts, 27 conjunts are in the unsatisfiable core [2023-02-17 09:43:47,475 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:47,572 INFO L134 CoverageAnalysis]: Checked inductivity of 223780 backedges. 69835 proven. 762 refuted. 0 times theorem prover too weak. 153183 trivial. 0 not checked. [2023-02-17 09:43:47,572 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:47,829 INFO L134 CoverageAnalysis]: Checked inductivity of 223780 backedges. 10593 proven. 2834 refuted. 0 times theorem prover too weak. 210353 trivial. 0 not checked. [2023-02-17 09:43:47,829 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:47,829 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1545806270] [2023-02-17 09:43:47,829 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:47,829 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [605016550] [2023-02-17 09:43:47,829 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [605016550] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:47,829 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:47,830 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 24] total 28 [2023-02-17 09:43:47,830 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [423465817] [2023-02-17 09:43:47,830 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:47,830 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:47,831 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:47,831 INFO L85 PathProgramCache]: Analyzing trace with hash 1091491436, now seen corresponding path program 47 times [2023-02-17 09:43:47,831 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:47,831 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1581143059] [2023-02-17 09:43:47,831 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:47,831 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:47,858 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:47,858 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1048865528] [2023-02-17 09:43:47,858 INFO L93 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 [2023-02-17 09:43:47,858 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:47,858 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:47,861 INFO L229 MonitoredProcess]: Starting monitored process 256 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:47,863 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (256)] Waiting until timeout for monitored process [2023-02-17 09:43:48,874 INFO L228 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 23 check-sat command(s) [2023-02-17 09:43:48,874 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:48,876 INFO L263 TraceCheckSpWp]: Trace formula consists of 250 conjuncts, 37 conjunts are in the unsatisfiable core [2023-02-17 09:43:48,880 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:49,018 INFO L134 CoverageAnalysis]: Checked inductivity of 78125 backedges. 31765 proven. 444 refuted. 0 times theorem prover too weak. 45916 trivial. 0 not checked. [2023-02-17 09:43:49,018 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:49,540 INFO L134 CoverageAnalysis]: Checked inductivity of 78125 backedges. 2053 proven. 9806 refuted. 0 times theorem prover too weak. 66266 trivial. 0 not checked. [2023-02-17 09:43:49,540 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:49,540 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1581143059] [2023-02-17 09:43:49,540 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:49,540 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1048865528] [2023-02-17 09:43:49,540 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1048865528] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:49,540 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:49,540 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [23, 37] total 40 [2023-02-17 09:43:49,541 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [758380099] [2023-02-17 09:43:49,541 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:49,541 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:49,541 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:49,541 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 40 interpolants. [2023-02-17 09:43:49,542 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=223, Invalid=1337, Unknown=0, NotChecked=0, Total=1560 [2023-02-17 09:43:49,542 INFO L87 Difference]: Start difference. First operand 3357 states and 7362 transitions. cyclomatic complexity: 4039 Second operand has 40 states, 37 states have (on average 2.5675675675675675) internal successors, (95), 38 states have internal predecessors, (95), 22 states have call successors, (39), 2 states have call predecessors, (39), 18 states have return successors, (52), 19 states have call predecessors, (52), 22 states have call successors, (52) [2023-02-17 09:43:51,199 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:51,199 INFO L93 Difference]: Finished difference Result 3809 states and 8035 transitions. [2023-02-17 09:43:51,199 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 3809 states and 8035 transitions. [2023-02-17 09:43:51,223 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 801 [2023-02-17 09:43:51,254 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 3809 states to 3806 states and 8032 transitions. [2023-02-17 09:43:51,254 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 629 [2023-02-17 09:43:51,255 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 647 [2023-02-17 09:43:51,255 INFO L73 IsDeterministic]: Start isDeterministic. Operand 3806 states and 8032 transitions. [2023-02-17 09:43:51,255 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:51,255 INFO L218 hiAutomatonCegarLoop]: Abstraction has 3806 states and 8032 transitions. [2023-02-17 09:43:51,256 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 3806 states and 8032 transitions. [2023-02-17 09:43:51,308 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 3806 to 3371. [2023-02-17 09:43:51,311 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3371 states, 1905 states have (on average 1.041994750656168) internal successors, (1985), 1887 states have internal predecessors, (1985), 1210 states have call successors, (1232), 323 states have call predecessors, (1232), 256 states have return successors, (4159), 1160 states have call predecessors, (4159), 1210 states have call successors, (4159) [2023-02-17 09:43:51,325 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3371 states to 3371 states and 7376 transitions. [2023-02-17 09:43:51,325 INFO L240 hiAutomatonCegarLoop]: Abstraction has 3371 states and 7376 transitions. [2023-02-17 09:43:51,325 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 39 states. [2023-02-17 09:43:51,326 INFO L428 stractBuchiCegarLoop]: Abstraction has 3371 states and 7376 transitions. [2023-02-17 09:43:51,326 INFO L335 stractBuchiCegarLoop]: ======== Iteration 77 ============ [2023-02-17 09:43:51,326 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 3371 states and 7376 transitions. [2023-02-17 09:43:51,334 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 742 [2023-02-17 09:43:51,335 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:51,335 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:51,341 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [300, 300, 213, 213, 213, 213, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:51,341 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [185, 185, 155, 155, 155, 155, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:51,342 INFO L748 eck$LassoCheckResult]: Stem: 833067#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 833013#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 833014#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 833035#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 833068#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 835496#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835494#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833011#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833012#$Ultimate##0 ~n := #in~n; 835664#L25 assume ~n <= 0;#res := 1; 835663#factFINAL assume true; 835662#factEXIT >#68#return; 833058#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833059#$Ultimate##0 ~n := #in~n; 835406#L25 assume ~n <= 0;#res := 1; 835401#factFINAL assume true; 835400#factEXIT >#70#return; 833001#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833002#$Ultimate##0 ~n := #in~n; 835789#L25 assume ~n <= 0;#res := 1; 835788#factFINAL assume true; 835787#factEXIT >#72#return; 833032#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 833033#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 833042#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 833055#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 833041#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 832988#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 832989#$Ultimate##0 ~n := #in~n; 836100#L25 assume !(~n <= 0); 836092#L26 call #t~ret0 := fact(~n - 1);< 836095#$Ultimate##0 ~n := #in~n; 836106#L25 assume ~n <= 0;#res := 1; 836098#factFINAL assume true; 836091#factEXIT >#66#return; 836094#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836190#factFINAL assume true; 836186#factEXIT >#74#return; 836182#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 836183#$Ultimate##0 ~n := #in~n; 836189#L25 assume ~n <= 0;#res := 1; 836185#factFINAL assume true; 836181#factEXIT >#76#return; 836085#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 836086#$Ultimate##0 ~n := #in~n; 836097#L25 assume !(~n <= 0); 836093#L26 call #t~ret0 := fact(~n - 1);< 836095#$Ultimate##0 ~n := #in~n; 836106#L25 assume ~n <= 0;#res := 1; 836098#factFINAL assume true; 836091#factEXIT >#66#return; 836088#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836087#factFINAL assume true; 836084#factEXIT >#78#return; 836083#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 836081#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 836075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 836073#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 836071#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 836042#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 836044#$Ultimate##0 ~n := #in~n; 836070#L25 assume !(~n <= 0); 836067#L26 call #t~ret0 := fact(~n - 1);< 836068#$Ultimate##0 ~n := #in~n; 836082#L25 assume !(~n <= 0); 836066#L26 call #t~ret0 := fact(~n - 1);< 836080#$Ultimate##0 ~n := #in~n; 836107#L25 assume ~n <= 0;#res := 1; 836105#factFINAL assume true; 836101#factEXIT >#66#return; 836099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836089#factFINAL assume true; 836076#factEXIT >#66#return; 836078#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836134#factFINAL assume true; 836124#factEXIT >#74#return; 836121#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 836122#$Ultimate##0 ~n := #in~n; 836139#L25 assume ~n <= 0;#res := 1; 836137#factFINAL assume true; 836120#factEXIT >#76#return; 833071#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833072#$Ultimate##0 ~n := #in~n; 836096#L25 assume !(~n <= 0); 836077#L26 call #t~ret0 := fact(~n - 1);< 836090#$Ultimate##0 ~n := #in~n; 836104#L25 assume !(~n <= 0); 836102#L26 call #t~ret0 := fact(~n - 1);< 836103#$Ultimate##0 ~n := #in~n; 836107#L25 assume ~n <= 0;#res := 1; 836105#factFINAL assume true; 836101#factEXIT >#66#return; 836099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836089#factFINAL assume true; 836076#factEXIT >#66#return; 836079#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836227#factFINAL assume true; 836226#factEXIT >#78#return; 833017#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 833018#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 833038#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 836050#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 836048#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 836043#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 836044#$Ultimate##0 ~n := #in~n; 836070#L25 assume !(~n <= 0); 836067#L26 call #t~ret0 := fact(~n - 1);< 836068#$Ultimate##0 ~n := #in~n; 836082#L25 assume !(~n <= 0); 836066#L26 call #t~ret0 := fact(~n - 1);< 836080#$Ultimate##0 ~n := #in~n; 836082#L25 assume !(~n <= 0); 836066#L26 call #t~ret0 := fact(~n - 1);< 836080#$Ultimate##0 ~n := #in~n; 836107#L25 assume ~n <= 0;#res := 1; 836105#factFINAL assume true; 836101#factEXIT >#66#return; 836099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836089#factFINAL assume true; 836076#factEXIT >#66#return; 836074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836072#factFINAL assume true; 836065#factEXIT >#66#return; 836049#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836047#factFINAL assume true; 836041#factEXIT >#74#return; 836030#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 836031#$Ultimate##0 ~n := #in~n; 836036#L25 assume ~n <= 0;#res := 1; 836035#factFINAL assume true; 836029#factEXIT >#76#return; 836025#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 836026#$Ultimate##0 ~n := #in~n; 836069#L25 assume !(~n <= 0); 836056#L26 call #t~ret0 := fact(~n - 1);< 836064#$Ultimate##0 ~n := #in~n; 836131#L25 assume !(~n <= 0); 836057#L26 call #t~ret0 := fact(~n - 1);< 836060#$Ultimate##0 ~n := #in~n; 836129#L25 assume !(~n <= 0); 836055#L26 call #t~ret0 := fact(~n - 1);< 836128#$Ultimate##0 ~n := #in~n; 836132#L25 assume ~n <= 0;#res := 1; 836130#factFINAL assume true; 836127#factEXIT >#66#return; 836119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836116#factFINAL assume true; 836115#factEXIT >#66#return; 836114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836113#factFINAL assume true; 836109#factEXIT >#66#return; 836059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836265#factFINAL assume true; 836024#factEXIT >#78#return; 836021#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 836018#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 836016#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 836014#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 836012#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 836008#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 836009#$Ultimate##0 ~n := #in~n; 836062#L25 assume !(~n <= 0); 836058#L26 call #t~ret0 := fact(~n - 1);< 836060#$Ultimate##0 ~n := #in~n; 836129#L25 assume !(~n <= 0); 836055#L26 call #t~ret0 := fact(~n - 1);< 836128#$Ultimate##0 ~n := #in~n; 836129#L25 assume !(~n <= 0); 836055#L26 call #t~ret0 := fact(~n - 1);< 836128#$Ultimate##0 ~n := #in~n; 836129#L25 assume !(~n <= 0); 836055#L26 call #t~ret0 := fact(~n - 1);< 836128#$Ultimate##0 ~n := #in~n; 836132#L25 assume ~n <= 0;#res := 1; 836130#factFINAL assume true; 836127#factEXIT >#66#return; 836119#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836116#factFINAL assume true; 836115#factEXIT >#66#return; 836114#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836113#factFINAL assume true; 836109#factEXIT >#66#return; 836108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836063#factFINAL assume true; 836054#factEXIT >#66#return; 836052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836051#factFINAL assume true; 836007#factEXIT >#74#return; 836004#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 836005#$Ultimate##0 ~n := #in~n; 836061#L25 assume ~n <= 0;#res := 1; 836053#factFINAL assume true; 836003#factEXIT >#76#return; 835831#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 835952#$Ultimate##0 ~n := #in~n; 835950#L25 assume !(~n <= 0); 835922#L26 call #t~ret0 := fact(~n - 1);< 835949#$Ultimate##0 ~n := #in~n; 836133#L25 assume !(~n <= 0); 835929#L26 call #t~ret0 := fact(~n - 1);< 835954#$Ultimate##0 ~n := #in~n; 836144#L25 assume !(~n <= 0); 835926#L26 call #t~ret0 := fact(~n - 1);< 836126#$Ultimate##0 ~n := #in~n; 836144#L25 assume !(~n <= 0); 835926#L26 call #t~ret0 := fact(~n - 1);< 836126#$Ultimate##0 ~n := #in~n; 836228#L25 assume ~n <= 0;#res := 1; 836143#factFINAL assume true; 836125#factEXIT >#66#return; 836123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836118#factFINAL assume true; 836112#factEXIT >#66#return; 836111#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836110#factFINAL assume true; 835953#factEXIT >#66#return; 835951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835948#factFINAL assume true; 835944#factEXIT >#66#return; 835945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 836312#factFINAL assume true; 835830#factEXIT >#78#return; 835832#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 836290#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 836289#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 836288#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 836286#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834577#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834578#$Ultimate##0 ~n := #in~n; 834629#L25 assume !(~n <= 0); 834622#L26 call #t~ret0 := fact(~n - 1);< 834623#$Ultimate##0 ~n := #in~n; 834633#L25 assume !(~n <= 0); 834631#L26 call #t~ret0 := fact(~n - 1);< 834632#$Ultimate##0 ~n := #in~n; 834641#L25 assume !(~n <= 0); 834637#L26 call #t~ret0 := fact(~n - 1);< 834639#$Ultimate##0 ~n := #in~n; 834657#L25 assume !(~n <= 0); 834638#L26 call #t~ret0 := fact(~n - 1);< 834653#$Ultimate##0 ~n := #in~n; 834657#L25 assume !(~n <= 0); 834638#L26 call #t~ret0 := fact(~n - 1);< 834653#$Ultimate##0 ~n := #in~n; 834660#L25 assume ~n <= 0;#res := 1; 834659#factFINAL assume true; 834658#factEXIT >#66#return; 834656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834654#factFINAL assume true; 834652#factEXIT >#66#return; 834651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834649#factFINAL assume true; 834636#factEXIT >#66#return; 834635#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834634#factFINAL assume true; 834630#factEXIT >#66#return; 834628#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834627#factFINAL assume true; 834621#factEXIT >#66#return; 834617#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834612#factFINAL assume true; 834576#factEXIT >#74#return; 834573#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834574#$Ultimate##0 ~n := #in~n; 834611#L25 assume ~n <= 0;#res := 1; 834609#factFINAL assume true; 834572#factEXIT >#76#return; 833004#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834570#$Ultimate##0 ~n := #in~n; 834569#L25 assume !(~n <= 0); 833334#L26 call #t~ret0 := fact(~n - 1);< 834517#$Ultimate##0 ~n := #in~n; 834655#L25 assume !(~n <= 0); 833337#L26 call #t~ret0 := fact(~n - 1);< 834530#$Ultimate##0 ~n := #in~n; 834618#L25 assume !(~n <= 0); 833332#L26 call #t~ret0 := fact(~n - 1);< 834567#$Ultimate##0 ~n := #in~n; 834647#L25 assume !(~n <= 0); 833330#L26 call #t~ret0 := fact(~n - 1);< 834580#$Ultimate##0 ~n := #in~n; 834648#L25 assume !(~n <= 0); 833328#L26 call #t~ret0 := fact(~n - 1);< 834626#$Ultimate##0 ~n := #in~n; 834650#L25 assume ~n <= 0;#res := 1; 834646#factFINAL assume true; 834625#factEXIT >#66#return; 834620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834616#factFINAL assume true; 834579#factEXIT >#66#return; 834575#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834571#factFINAL assume true; 834566#factEXIT >#66#return; 834562#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834560#factFINAL assume true; 834529#factEXIT >#66#return; 834527#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834525#factFINAL assume true; 834516#factEXIT >#66#return; 833043#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833003#factFINAL assume true; 833005#factEXIT >#78#return; 833307#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 833305#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 833303#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 833301#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 833299#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 833189#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 833174#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 833171#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833129#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833143#$Ultimate##0 ~n := #in~n; 833224#L25 assume !(~n <= 0); 833161#L26 call #t~ret0 := fact(~n - 1);< 833223#$Ultimate##0 ~n := #in~n; 834542#L25 assume ~n <= 0;#res := 1; 834540#factFINAL assume true; 834538#factEXIT >#66#return; 834536#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834534#factFINAL assume true; 834532#factEXIT >#68#return; 833122#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833145#$Ultimate##0 ~n := #in~n; 833149#L25 assume ~n <= 0;#res := 1; 833144#factFINAL assume true; 833119#factEXIT >#70#return; 833138#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834450#$Ultimate##0 ~n := #in~n; 834524#L25 assume !(~n <= 0); 833024#L26 call #t~ret0 := fact(~n - 1);< 834459#$Ultimate##0 ~n := #in~n; 834520#L25 assume ~n <= 0;#res := 1; 834518#factFINAL assume true; 834458#factEXIT >#66#return; 834457#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834455#factFINAL assume true; 834449#factEXIT >#72#return; 834447#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834446#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 834445#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834444#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834442#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834313#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834439#$Ultimate##0 ~n := #in~n; 834664#L25 assume !(~n <= 0); 833869#L26 call #t~ret0 := fact(~n - 1);< 833953#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834438#factFINAL assume true; 834267#factEXIT >#68#return; 834326#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834435#$Ultimate##0 ~n := #in~n; 836356#L25 assume !(~n <= 0); 833949#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834438#factFINAL assume true; 834267#factEXIT >#70#return; 834205#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834266#$Ultimate##0 ~n := #in~n; 834558#L25 assume ~n <= 0;#res := 1; 834100#factFINAL assume true; 834202#factEXIT >#72#return; 834201#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834200#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 834199#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834197#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834196#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833594#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834162#$Ultimate##0 ~n := #in~n; 834106#L25 assume !(~n <= 0); 833730#L26 call #t~ret0 := fact(~n - 1);< 833955#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#74#return; 833778#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833804#$Ultimate##0 ~n := #in~n; 835005#L25 assume !(~n <= 0); 833947#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#76#return; 833785#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833804#$Ultimate##0 ~n := #in~n; 835005#L25 assume !(~n <= 0); 833947#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#78#return; 833803#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834485#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 834484#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834483#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834482#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833579#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834180#$Ultimate##0 ~n := #in~n; 834674#L25 assume !(~n <= 0); 833720#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#74#return; 833777#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833804#$Ultimate##0 ~n := #in~n; 835005#L25 assume !(~n <= 0); 833947#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#76#return; 833791#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834198#$Ultimate##0 ~n := #in~n; 834486#L25 assume !(~n <= 0); 833052#L26 call #t~ret0 := fact(~n - 1);< 833061#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#78#return; 834185#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834195#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 834194#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834193#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834192#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833586#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834180#$Ultimate##0 ~n := #in~n; 834674#L25 assume !(~n <= 0); 833720#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#74#return; 833674#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833804#$Ultimate##0 ~n := #in~n; 835005#L25 assume !(~n <= 0); 833947#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#76#return; 833591#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833698#$Ultimate##0 ~n := #in~n; 835096#L25 assume !(~n <= 0); 833725#L26 call #t~ret0 := fact(~n - 1);< 833873#$Ultimate##0 ~n := #in~n; 835092#L25 assume !(~n <= 0); 833865#L26 call #t~ret0 := fact(~n - 1);< 833963#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#78#return; 834160#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 833970#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 833969#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 833888#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 833876#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833830#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#74#return; 833782#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833804#$Ultimate##0 ~n := #in~n; 835005#L25 assume !(~n <= 0); 833947#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#76#return; 833593#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833698#$Ultimate##0 ~n := #in~n; 835096#L25 assume !(~n <= 0); 833725#L26 call #t~ret0 := fact(~n - 1);< 833873#$Ultimate##0 ~n := #in~n; 835092#L25 assume !(~n <= 0); 833865#L26 call #t~ret0 := fact(~n - 1);< 833963#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#78#return; 833440#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 833438#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 833437#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 833436#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 833433#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833287#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833406#$Ultimate##0 ~n := #in~n; 833404#L25 assume !(~n <= 0); 833400#L26 call #t~ret0 := fact(~n - 1);< 833403#$Ultimate##0 ~n := #in~n; 833402#L25 assume !(~n <= 0); 833364#L26 call #t~ret0 := fact(~n - 1);< 833399#$Ultimate##0 ~n := #in~n; 833397#L25 assume !(~n <= 0); 833351#L26 call #t~ret0 := fact(~n - 1);< 833365#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833370#factFINAL assume true; 833367#factEXIT >#66#return; 833366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833363#factFINAL assume true; 833349#factEXIT >#66#return; 833361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833758#factFINAL assume true; 833753#factEXIT >#66#return; 833754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833759#factFINAL assume true; 833756#factEXIT >#66#return; 833755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833752#factFINAL assume true; 833431#factEXIT >#74#return; 833409#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833063#$Ultimate##0 ~n := #in~n; 833429#L25 assume !(~n <= 0); 833426#L26 call #t~ret0 := fact(~n - 1);< 833427#$Ultimate##0 ~n := #in~n; 833432#L25 assume ~n <= 0;#res := 1; 833430#factFINAL assume true; 833425#factEXIT >#66#return; 833424#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833423#factFINAL assume true; 833408#factEXIT >#76#return; 833267#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833407#$Ultimate##0 ~n := #in~n; 833405#L25 assume !(~n <= 0); 833357#L26 call #t~ret0 := fact(~n - 1);< 833371#$Ultimate##0 ~n := #in~n; 833401#L25 assume !(~n <= 0); 833352#L26 call #t~ret0 := fact(~n - 1);< 833365#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833370#factFINAL assume true; 833367#factEXIT >#66#return; 833366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833363#factFINAL assume true; 833349#factEXIT >#66#return; 833361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833758#factFINAL assume true; 833753#factEXIT >#66#return; 833754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833759#factFINAL assume true; 833756#factEXIT >#66#return; 833755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833752#factFINAL assume true; 833431#factEXIT >#78#return; 833236#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 833234#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 833232#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 833230#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 833228#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 833227#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 833226#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 833203#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833009#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833010#$Ultimate##0 ~n := #in~n; 833216#L25 assume !(~n <= 0); 833163#L26 call #t~ret0 := fact(~n - 1);< 833193#$Ultimate##0 ~n := #in~n; 833220#L25 assume !(~n <= 0); 833159#L26 call #t~ret0 := fact(~n - 1);< 833219#$Ultimate##0 ~n := #in~n; 833222#L25 assume ~n <= 0;#res := 1; 833221#factFINAL assume true; 833218#factEXIT >#66#return; 833217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833215#factFINAL assume true; 833212#factEXIT >#66#return; 833213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834498#factFINAL assume true; 834495#factEXIT >#68#return; 833127#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833145#$Ultimate##0 ~n := #in~n; 833149#L25 assume ~n <= 0;#res := 1; 833144#factFINAL assume true; 833119#factEXIT >#70#return; 833140#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834494#$Ultimate##0 ~n := #in~n; 834504#L25 assume !(~n <= 0); 833023#L26 call #t~ret0 := fact(~n - 1);< 834503#$Ultimate##0 ~n := #in~n; 833045#L25 assume !(~n <= 0); 833019#L26 call #t~ret0 := fact(~n - 1);< 833021#$Ultimate##0 ~n := #in~n; 833060#L25 assume ~n <= 0;#res := 1; 834557#factFINAL assume true; 834521#factEXIT >#66#return; 834519#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834505#factFINAL assume true; 834499#factEXIT >#66#return; 834497#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834496#factFINAL assume true; 834493#factEXIT >#72#return; 834492#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834490#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 834489#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834488#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834487#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834463#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834476#$Ultimate##0 ~n := #in~n; 834507#L25 assume !(~n <= 0); 833868#L26 call #t~ret0 := fact(~n - 1);< 833963#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834478#factFINAL assume true; 834461#factEXIT >#68#return; 834286#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834475#$Ultimate##0 ~n := #in~n; 834778#L25 assume !(~n <= 0); 833738#L26 call #t~ret0 := fact(~n - 1);< 834491#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834438#factFINAL assume true; 834267#factEXIT >#70#return; 834032#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834460#$Ultimate##0 ~n := #in~n; 835659#L25 assume !(~n <= 0); 833948#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833950#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834585#factFINAL assume true; 834583#factEXIT >#72#return; 834581#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834544#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 834481#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834479#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834477#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834462#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834476#$Ultimate##0 ~n := #in~n; 834507#L25 assume !(~n <= 0); 833868#L26 call #t~ret0 := fact(~n - 1);< 833963#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834478#factFINAL assume true; 834461#factEXIT >#68#return; 834337#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834475#$Ultimate##0 ~n := #in~n; 834778#L25 assume !(~n <= 0); 833738#L26 call #t~ret0 := fact(~n - 1);< 834491#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834478#factFINAL assume true; 834461#factEXIT >#70#return; 834023#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834460#$Ultimate##0 ~n := #in~n; 835659#L25 assume ~n <= 0;#res := 1; 834100#factFINAL assume true; 834202#factEXIT >#72#return; 834233#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834456#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 834454#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834453#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834452#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833475#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834180#$Ultimate##0 ~n := #in~n; 834674#L25 assume !(~n <= 0); 833720#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#74#return; 833470#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834181#$Ultimate##0 ~n := #in~n; 835701#L25 assume !(~n <= 0); 833723#L26 call #t~ret0 := fact(~n - 1);< 833965#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#76#return; 833779#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834177#$Ultimate##0 ~n := #in~n; 834176#L25 assume !(~n <= 0); 833053#L26 call #t~ret0 := fact(~n - 1);< 834157#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#78#return; 833792#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834603#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 834598#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834596#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834594#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833484#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834180#$Ultimate##0 ~n := #in~n; 834674#L25 assume !(~n <= 0); 833720#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#74#return; 833480#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834181#$Ultimate##0 ~n := #in~n; 835701#L25 assume !(~n <= 0); 833723#L26 call #t~ret0 := fact(~n - 1);< 833965#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#76#return; 833781#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834177#$Ultimate##0 ~n := #in~n; 834176#L25 assume !(~n <= 0); 833053#L26 call #t~ret0 := fact(~n - 1);< 834157#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#78#return; 834188#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834553#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 834549#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834548#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834546#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833813#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#74#return; 833500#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834181#$Ultimate##0 ~n := #in~n; 835701#L25 assume !(~n <= 0); 833723#L26 call #t~ret0 := fact(~n - 1);< 833965#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#76#return; 833502#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833698#$Ultimate##0 ~n := #in~n; 835096#L25 assume !(~n <= 0); 833725#L26 call #t~ret0 := fact(~n - 1);< 833873#$Ultimate##0 ~n := #in~n; 835092#L25 assume !(~n <= 0); 833865#L26 call #t~ret0 := fact(~n - 1);< 833963#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#78#return; 833678#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 834770#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 834769#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 834768#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834767#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833815#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#74#return; 833521#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834181#$Ultimate##0 ~n := #in~n; 835701#L25 assume !(~n <= 0); 833723#L26 call #t~ret0 := fact(~n - 1);< 833965#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#76#return; 833526#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833698#$Ultimate##0 ~n := #in~n; 835096#L25 assume !(~n <= 0); 833725#L26 call #t~ret0 := fact(~n - 1);< 833873#$Ultimate##0 ~n := #in~n; 835092#L25 assume !(~n <= 0); 833865#L26 call #t~ret0 := fact(~n - 1);< 833963#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#78#return; 833689#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835312#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835310#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835180#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 833760#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833251#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833406#$Ultimate##0 ~n := #in~n; 833404#L25 assume !(~n <= 0); 833400#L26 call #t~ret0 := fact(~n - 1);< 833403#$Ultimate##0 ~n := #in~n; 833402#L25 assume !(~n <= 0); 833364#L26 call #t~ret0 := fact(~n - 1);< 833399#$Ultimate##0 ~n := #in~n; 833397#L25 assume !(~n <= 0); 833351#L26 call #t~ret0 := fact(~n - 1);< 833365#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833370#factFINAL assume true; 833367#factEXIT >#66#return; 833366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833363#factFINAL assume true; 833349#factEXIT >#66#return; 833361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833758#factFINAL assume true; 833753#factEXIT >#66#return; 833754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833759#factFINAL assume true; 833756#factEXIT >#66#return; 833755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833752#factFINAL assume true; 833431#factEXIT >#74#return; 833262#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833394#$Ultimate##0 ~n := #in~n; 833384#L25 assume !(~n <= 0); 833356#L26 call #t~ret0 := fact(~n - 1);< 833379#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833377#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833699#factFINAL assume true; 833411#factEXIT >#76#return; 833284#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833407#$Ultimate##0 ~n := #in~n; 833405#L25 assume !(~n <= 0); 833357#L26 call #t~ret0 := fact(~n - 1);< 833371#$Ultimate##0 ~n := #in~n; 833401#L25 assume !(~n <= 0); 833352#L26 call #t~ret0 := fact(~n - 1);< 833365#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833370#factFINAL assume true; 833367#factEXIT >#66#return; 833366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833363#factFINAL assume true; 833349#factEXIT >#66#return; 833361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833758#factFINAL assume true; 833753#factEXIT >#66#return; 833754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833759#factFINAL assume true; 833756#factEXIT >#66#return; 833755#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833752#factFINAL assume true; 833431#factEXIT >#78#return; 833293#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 833036#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 833037#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 833066#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 835090#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 835089#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 835088#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834997#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833192#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833200#$Ultimate##0 ~n := #in~n; 833196#L25 assume !(~n <= 0); 833153#L26 call #t~ret0 := fact(~n - 1);< 833193#$Ultimate##0 ~n := #in~n; 833220#L25 assume !(~n <= 0); 833159#L26 call #t~ret0 := fact(~n - 1);< 833219#$Ultimate##0 ~n := #in~n; 833220#L25 assume !(~n <= 0); 833159#L26 call #t~ret0 := fact(~n - 1);< 833219#$Ultimate##0 ~n := #in~n; 833220#L25 assume !(~n <= 0); 833159#L26 call #t~ret0 := fact(~n - 1);< 833219#$Ultimate##0 ~n := #in~n; 833220#L25 assume !(~n <= 0); 833159#L26 call #t~ret0 := fact(~n - 1);< 833219#$Ultimate##0 ~n := #in~n; 833222#L25 assume ~n <= 0;#res := 1; 833221#factFINAL assume true; 833218#factEXIT >#66#return; 833217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833215#factFINAL assume true; 833212#factEXIT >#66#return; 833211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833210#factFINAL assume true; 833207#factEXIT >#66#return; 833202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833201#factFINAL assume true; 833197#factEXIT >#66#return; 833195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833191#factFINAL assume true; 833186#factEXIT >#66#return; 833187#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835133#factFINAL assume true; 835131#factEXIT >#68#return; 833133#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833145#$Ultimate##0 ~n := #in~n; 833149#L25 assume ~n <= 0;#res := 1; 833144#factFINAL assume true; 833119#factEXIT >#70#return; 833142#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833079#$Ultimate##0 ~n := #in~n; 835731#L25 assume !(~n <= 0); 835214#L26 call #t~ret0 := fact(~n - 1);< 835223#$Ultimate##0 ~n := #in~n; 835805#L25 assume !(~n <= 0); 835229#L26 call #t~ret0 := fact(~n - 1);< 835232#$Ultimate##0 ~n := #in~n; 835819#L25 assume !(~n <= 0); 835240#L26 call #t~ret0 := fact(~n - 1);< 835242#$Ultimate##0 ~n := #in~n; 835817#L25 assume !(~n <= 0); 835248#L26 call #t~ret0 := fact(~n - 1);< 835252#$Ultimate##0 ~n := #in~n; 835809#L25 assume !(~n <= 0); 835259#L26 call #t~ret0 := fact(~n - 1);< 835260#$Ultimate##0 ~n := #in~n; 835265#L25 assume ~n <= 0;#res := 1; 835263#factFINAL assume true; 835258#factEXIT >#66#return; 835257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835256#factFINAL assume true; 835247#factEXIT >#66#return; 835246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835245#factFINAL assume true; 835238#factEXIT >#66#return; 835236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835234#factFINAL assume true; 835228#factEXIT >#66#return; 835227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835224#factFINAL assume true; 835213#factEXIT >#66#return; 835212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835210#factFINAL assume true; 835209#factEXIT >#72#return; 835111#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835207#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835206#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835205#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835204#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 835037#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 835040#$Ultimate##0 ~n := #in~n; 835061#L25 assume !(~n <= 0); 835057#L26 call #t~ret0 := fact(~n - 1);< 835060#$Ultimate##0 ~n := #in~n; 835171#L25 assume !(~n <= 0); 835056#L26 call #t~ret0 := fact(~n - 1);< 835124#$Ultimate##0 ~n := #in~n; 835150#L25 assume !(~n <= 0); 835051#L26 call #t~ret0 := fact(~n - 1);< 835141#$Ultimate##0 ~n := #in~n; 835150#L25 assume !(~n <= 0); 835051#L26 call #t~ret0 := fact(~n - 1);< 835141#$Ultimate##0 ~n := #in~n; 835166#L25 assume ~n <= 0;#res := 1; 835149#factFINAL assume true; 835139#factEXIT >#66#return; 835137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835135#factFINAL assume true; 835122#factEXIT >#66#return; 835120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835117#factFINAL assume true; 835085#factEXIT >#66#return; 835084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835083#factFINAL assume true; 835080#factEXIT >#66#return; 835081#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835267#factFINAL assume true; 835266#factEXIT >#68#return; 835029#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833057#$Ultimate##0 ~n := #in~n; 835126#L25 assume ~n <= 0;#res := 1; 835121#factFINAL assume true; 835017#factEXIT >#70#return; 833923#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 835004#$Ultimate##0 ~n := #in~n; 835002#L25 assume !(~n <= 0); 833713#L26 call #t~ret0 := fact(~n - 1);< 833920#$Ultimate##0 ~n := #in~n; 835098#L25 assume !(~n <= 0); 833716#L26 call #t~ret0 := fact(~n - 1);< 833964#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833884#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835211#factFINAL assume true; 835202#factEXIT >#72#return; 834957#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835200#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835179#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835177#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835174#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834702#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834794#$Ultimate##0 ~n := #in~n; 834793#L25 assume !(~n <= 0); 833733#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834894#factFINAL assume true; 834893#factEXIT >#68#return; 834356#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834475#$Ultimate##0 ~n := #in~n; 834778#L25 assume !(~n <= 0); 833738#L26 call #t~ret0 := fact(~n - 1);< 834491#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834478#factFINAL assume true; 834461#factEXIT >#70#return; 834114#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834175#$Ultimate##0 ~n := #in~n; 834174#L25 assume ~n <= 0;#res := 1; 834100#factFINAL assume true; 834202#factEXIT >#72#return; 834243#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835007#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835006#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835003#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 834796#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834713#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834794#$Ultimate##0 ~n := #in~n; 834793#L25 assume !(~n <= 0); 833733#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834894#factFINAL assume true; 834893#factEXIT >#68#return; 834396#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834475#$Ultimate##0 ~n := #in~n; 834778#L25 assume !(~n <= 0); 833738#L26 call #t~ret0 := fact(~n - 1);< 834491#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833872#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834756#factFINAL assume true; 834695#factEXIT >#70#return; 834021#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834460#$Ultimate##0 ~n := #in~n; 835659#L25 assume ~n <= 0;#res := 1; 834100#factFINAL assume true; 834202#factEXIT >#72#return; 834256#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835014#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835015#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835010#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835011#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833571#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833701#$Ultimate##0 ~n := #in~n; 834797#L25 assume !(~n <= 0); 833735#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#74#return; 833580#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834882#$Ultimate##0 ~n := #in~n; 834880#L25 assume !(~n <= 0); 833710#L26 call #t~ret0 := fact(~n - 1);< 833920#$Ultimate##0 ~n := #in~n; 835098#L25 assume !(~n <= 0); 833716#L26 call #t~ret0 := fact(~n - 1);< 833964#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#76#return; 833775#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833804#$Ultimate##0 ~n := #in~n; 835005#L25 assume !(~n <= 0); 833947#L26 call #t~ret0 := fact(~n - 1);< 833952#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#78#return; 833801#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835539#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835525#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835523#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835520#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833832#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#74#return; 833614#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834882#$Ultimate##0 ~n := #in~n; 834880#L25 assume !(~n <= 0); 833710#L26 call #t~ret0 := fact(~n - 1);< 833920#$Ultimate##0 ~n := #in~n; 835098#L25 assume !(~n <= 0); 833716#L26 call #t~ret0 := fact(~n - 1);< 833964#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#76#return; 833636#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834105#$Ultimate##0 ~n := #in~n; 834103#L25 assume !(~n <= 0); 833737#L26 call #t~ret0 := fact(~n - 1);< 833954#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#78#return; 834190#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835372#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835371#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835370#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835368#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833842#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#74#return; 833445#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834882#$Ultimate##0 ~n := #in~n; 834880#L25 assume !(~n <= 0); 833710#L26 call #t~ret0 := fact(~n - 1);< 833920#$Ultimate##0 ~n := #in~n; 835098#L25 assume !(~n <= 0); 833716#L26 call #t~ret0 := fact(~n - 1);< 833964#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#76#return; 833461#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834105#$Ultimate##0 ~n := #in~n; 834103#L25 assume !(~n <= 0); 833737#L26 call #t~ret0 := fact(~n - 1);< 833954#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834179#factFINAL assume true; 834178#factEXIT >#78#return; 833672#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835367#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835362#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835363#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835355#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833814#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834834#factFINAL assume true; 834831#factEXIT >#66#return; 834832#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835173#factFINAL assume true; 834752#factEXIT >#74#return; 833533#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834749#$Ultimate##0 ~n := #in~n; 834792#L25 assume !(~n <= 0); 833712#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#76#return; 833545#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834162#$Ultimate##0 ~n := #in~n; 834106#L25 assume !(~n <= 0); 833730#L26 call #t~ret0 := fact(~n - 1);< 833955#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#78#return; 833669#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835535#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835534#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835464#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833271#L30-5 [2023-02-17 09:43:51,349 INFO L750 eck$LassoCheckResult]: Loop: 833271#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833406#$Ultimate##0 ~n := #in~n; 833404#L25 assume !(~n <= 0); 833400#L26 call #t~ret0 := fact(~n - 1);< 833403#$Ultimate##0 ~n := #in~n; 833402#L25 assume !(~n <= 0); 833364#L26 call #t~ret0 := fact(~n - 1);< 833399#$Ultimate##0 ~n := #in~n; 833397#L25 assume !(~n <= 0); 833351#L26 call #t~ret0 := fact(~n - 1);< 833365#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833370#factFINAL assume true; 833367#factEXIT >#66#return; 833366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833363#factFINAL assume true; 833349#factEXIT >#66#return; 833361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833758#factFINAL assume true; 833753#factEXIT >#66#return; 833754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833759#factFINAL assume true; 833756#factEXIT >#66#return; 833757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833890#factFINAL assume true; 833849#factEXIT >#66#return; 833850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834191#factFINAL assume true; 834163#factEXIT >#66#return; 834161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833966#factFINAL assume true; 833956#factEXIT >#66#return; 833860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833892#factFINAL assume true; 833859#factEXIT >#66#return; 833857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833856#factFINAL assume true; 833805#factEXIT >#74#return; 833278#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833345#$Ultimate##0 ~n := #in~n; 833375#L25 assume !(~n <= 0); 833350#L26 call #t~ret0 := fact(~n - 1);< 833362#$Ultimate##0 ~n := #in~n; 833380#L25 assume !(~n <= 0); 833359#L26 call #t~ret0 := fact(~n - 1);< 833369#$Ultimate##0 ~n := #in~n; 833401#L25 assume !(~n <= 0); 833352#L26 call #t~ret0 := fact(~n - 1);< 833365#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833370#factFINAL assume true; 833367#factEXIT >#66#return; 833366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833363#factFINAL assume true; 833349#factEXIT >#66#return; 833361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833758#factFINAL assume true; 833753#factEXIT >#66#return; 833754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833759#factFINAL assume true; 833756#factEXIT >#66#return; 833757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833890#factFINAL assume true; 833849#factEXIT >#66#return; 833850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834191#factFINAL assume true; 834163#factEXIT >#66#return; 834161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833966#factFINAL assume true; 833956#factEXIT >#66#return; 833860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833892#factFINAL assume true; 833859#factEXIT >#66#return; 833857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833856#factFINAL assume true; 833805#factEXIT >#76#return; 833240#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 833070#$Ultimate##0 ~n := #in~n; 833439#L25 assume !(~n <= 0); 833360#L26 call #t~ret0 := fact(~n - 1);< 833435#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833398#L25 assume !(~n <= 0); 833354#L26 call #t~ret0 := fact(~n - 1);< 833386#$Ultimate##0 ~n := #in~n; 833396#L25 assume ~n <= 0;#res := 1; 833395#factFINAL assume true; 833385#factEXIT >#66#return; 833381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833378#factFINAL assume true; 833376#factEXIT >#66#return; 833372#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833370#factFINAL assume true; 833367#factEXIT >#66#return; 833366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833363#factFINAL assume true; 833349#factEXIT >#66#return; 833361#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833758#factFINAL assume true; 833753#factEXIT >#66#return; 833754#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833759#factFINAL assume true; 833756#factEXIT >#66#return; 833757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833890#factFINAL assume true; 833849#factEXIT >#66#return; 833850#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834191#factFINAL assume true; 834163#factEXIT >#66#return; 834161#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833966#factFINAL assume true; 833956#factEXIT >#66#return; 833860#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833892#factFINAL assume true; 833859#factEXIT >#66#return; 833857#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833856#factFINAL assume true; 833805#factEXIT >#78#return; 833292#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835461#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835460#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835457#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 835456#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 835319#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 835318#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835132#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 832991#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833148#$Ultimate##0 ~n := #in~n; 833170#L25 assume !(~n <= 0); 833158#L26 call #t~ret0 := fact(~n - 1);< 833178#$Ultimate##0 ~n := #in~n; 833225#L25 assume !(~n <= 0); 833155#L26 call #t~ret0 := fact(~n - 1);< 833214#$Ultimate##0 ~n := #in~n; 833220#L25 assume !(~n <= 0); 833159#L26 call #t~ret0 := fact(~n - 1);< 833219#$Ultimate##0 ~n := #in~n; 833220#L25 assume !(~n <= 0); 833159#L26 call #t~ret0 := fact(~n - 1);< 833219#$Ultimate##0 ~n := #in~n; 833222#L25 assume ~n <= 0;#res := 1; 833221#factFINAL assume true; 833218#factEXIT >#66#return; 833217#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833215#factFINAL assume true; 833212#factEXIT >#66#return; 833211#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833210#factFINAL assume true; 833207#factEXIT >#66#return; 833202#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833201#factFINAL assume true; 833197#factEXIT >#66#return; 833198#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835097#factFINAL assume true; 835095#factEXIT >#68#return; 833135#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833145#$Ultimate##0 ~n := #in~n; 833149#L25 assume ~n <= 0;#res := 1; 833144#factFINAL assume true; 833119#factEXIT >#70#return; 833083#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834995#$Ultimate##0 ~n := #in~n; 835237#L25 assume !(~n <= 0); 835216#L26 call #t~ret0 := fact(~n - 1);< 835235#$Ultimate##0 ~n := #in~n; 835244#L25 assume !(~n <= 0); 835230#L26 call #t~ret0 := fact(~n - 1);< 835243#$Ultimate##0 ~n := #in~n; 835253#L25 assume !(~n <= 0); 835239#L26 call #t~ret0 := fact(~n - 1);< 835251#$Ultimate##0 ~n := #in~n; 835264#L25 assume !(~n <= 0); 835249#L26 call #t~ret0 := fact(~n - 1);< 835261#$Ultimate##0 ~n := #in~n; 835809#L25 assume !(~n <= 0); 835259#L26 call #t~ret0 := fact(~n - 1);< 835260#$Ultimate##0 ~n := #in~n; 835265#L25 assume ~n <= 0;#res := 1; 835263#factFINAL assume true; 835258#factEXIT >#66#return; 835257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835256#factFINAL assume true; 835247#factEXIT >#66#return; 835246#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835245#factFINAL assume true; 835238#factEXIT >#66#return; 835236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835234#factFINAL assume true; 835228#factEXIT >#66#return; 835227#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835224#factFINAL assume true; 835213#factEXIT >#66#return; 835212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835210#factFINAL assume true; 835209#factEXIT >#72#return; 835113#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835105#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835106#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835099#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 835035#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 835040#$Ultimate##0 ~n := #in~n; 835061#L25 assume !(~n <= 0); 835057#L26 call #t~ret0 := fact(~n - 1);< 835060#$Ultimate##0 ~n := #in~n; 835171#L25 assume !(~n <= 0); 835056#L26 call #t~ret0 := fact(~n - 1);< 835124#$Ultimate##0 ~n := #in~n; 835150#L25 assume !(~n <= 0); 835051#L26 call #t~ret0 := fact(~n - 1);< 835141#$Ultimate##0 ~n := #in~n; 835150#L25 assume !(~n <= 0); 835051#L26 call #t~ret0 := fact(~n - 1);< 835141#$Ultimate##0 ~n := #in~n; 835150#L25 assume !(~n <= 0); 835051#L26 call #t~ret0 := fact(~n - 1);< 835141#$Ultimate##0 ~n := #in~n; 835150#L25 assume !(~n <= 0); 835051#L26 call #t~ret0 := fact(~n - 1);< 835141#$Ultimate##0 ~n := #in~n; 835166#L25 assume ~n <= 0;#res := 1; 835149#factFINAL assume true; 835139#factEXIT >#66#return; 835137#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835135#factFINAL assume true; 835122#factEXIT >#66#return; 835120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835117#factFINAL assume true; 835085#factEXIT >#66#return; 835084#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835083#factFINAL assume true; 835080#factEXIT >#66#return; 835079#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835078#factFINAL assume true; 835075#factEXIT >#66#return; 835074#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835073#factFINAL assume true; 835066#factEXIT >#66#return; 835067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835345#factFINAL assume true; 835344#factEXIT >#68#return; 835032#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833057#$Ultimate##0 ~n := #in~n; 835126#L25 assume ~n <= 0;#res := 1; 835121#factFINAL assume true; 835017#factEXIT >#70#return; 834772#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 835340#$Ultimate##0 ~n := #in~n; 835339#L25 assume !(~n <= 0); 834760#L26 call #t~ret0 := fact(~n - 1);< 834774#$Ultimate##0 ~n := #in~n; 835346#L25 assume !(~n <= 0); 833853#L26 call #t~ret0 := fact(~n - 1);< 833945#$Ultimate##0 ~n := #in~n; 835808#L25 assume !(~n <= 0); 833724#L26 call #t~ret0 := fact(~n - 1);< 833854#$Ultimate##0 ~n := #in~n; 835810#L25 assume !(~n <= 0); 833866#L26 call #t~ret0 := fact(~n - 1);< 833874#$Ultimate##0 ~n := #in~n; 836350#L25 assume !(~n <= 0); 833051#L26 call #t~ret0 := fact(~n - 1);< 833061#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834764#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835447#factFINAL assume true; 835445#factEXIT >#72#return; 834945#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835549#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835548#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835547#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835546#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834697#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834794#$Ultimate##0 ~n := #in~n; 834793#L25 assume !(~n <= 0); 833733#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835398#factFINAL assume true; 835377#factEXIT >#68#return; 834304#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834440#$Ultimate##0 ~n := #in~n; 834670#L25 assume !(~n <= 0); 833739#L26 call #t~ret0 := fact(~n - 1);< 833955#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834478#factFINAL assume true; 834461#factEXIT >#70#return; 833936#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 835001#$Ultimate##0 ~n := #in~n; 835000#L25 assume !(~n <= 0); 833709#L26 call #t~ret0 := fact(~n - 1);< 833939#$Ultimate##0 ~n := #in~n; 835335#L25 assume !(~n <= 0); 833728#L26 call #t~ret0 := fact(~n - 1);< 833928#$Ultimate##0 ~n := #in~n; 835332#L25 assume !(~n <= 0); 833721#L26 call #t~ret0 := fact(~n - 1);< 833965#$Ultimate##0 ~n := #in~n; 835815#L25 assume !(~n <= 0); 833719#L26 call #t~ret0 := fact(~n - 1);< 834170#$Ultimate##0 ~n := #in~n; 836354#L25 assume !(~n <= 0); 833864#L26 call #t~ret0 := fact(~n - 1);< 834169#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835434#factFINAL assume true; 835432#factEXIT >#72#return; 835429#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835678#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835676#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835674#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835673#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834700#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834794#$Ultimate##0 ~n := #in~n; 834793#L25 assume !(~n <= 0); 833733#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835398#factFINAL assume true; 835377#factEXIT >#68#return; 834347#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834440#$Ultimate##0 ~n := #in~n; 834670#L25 assume !(~n <= 0); 833739#L26 call #t~ret0 := fact(~n - 1);< 833955#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834834#factFINAL assume true; 834831#factEXIT >#66#return; 834829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834828#factFINAL assume true; 834824#factEXIT >#66#return; 834786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834817#factFINAL assume true; 834779#factEXIT >#66#return; 834789#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835399#factFINAL assume true; 834852#factEXIT >#70#return; 834040#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834460#$Ultimate##0 ~n := #in~n; 835659#L25 assume ~n <= 0;#res := 1; 834100#factFINAL assume true; 834202#factEXIT >#72#return; 834238#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835670#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835668#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835666#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835665#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 834707#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 834794#$Ultimate##0 ~n := #in~n; 834793#L25 assume !(~n <= 0); 833733#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834842#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 835398#factFINAL assume true; 835377#factEXIT >#68#return; 834392#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834440#$Ultimate##0 ~n := #in~n; 834670#L25 assume !(~n <= 0); 833739#L26 call #t~ret0 := fact(~n - 1);< 833955#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834894#factFINAL assume true; 834893#factEXIT >#70#return; 833989#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834981#$Ultimate##0 ~n := #in~n; 835792#L25 assume ~n <= 0;#res := 1; 834100#factFINAL assume true; 834202#factEXIT >#72#return; 834259#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835661#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 835660#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835658#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835334#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833589#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833701#$Ultimate##0 ~n := #in~n; 834797#L25 assume !(~n <= 0); 833735#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#74#return; 833620#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 834451#$Ultimate##0 ~n := #in~n; 834448#L25 assume !(~n <= 0); 833706#L26 call #t~ret0 := fact(~n - 1);< 834443#$Ultimate##0 ~n := #in~n; 834441#L25 assume !(~n <= 0); 833711#L26 call #t~ret0 := fact(~n - 1);< 833873#$Ultimate##0 ~n := #in~n; 835092#L25 assume !(~n <= 0); 833865#L26 call #t~ret0 := fact(~n - 1);< 833963#$Ultimate##0 ~n := #in~n; 836355#L25 assume !(~n <= 0); 833050#L26 call #t~ret0 := fact(~n - 1);< 834166#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#76#return; 833687#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834177#$Ultimate##0 ~n := #in~n; 834176#L25 assume !(~n <= 0); 833053#L26 call #t~ret0 := fact(~n - 1);< 834157#$Ultimate##0 ~n := #in~n; 834159#L25 assume ~n <= 0;#res := 1; 833971#factFINAL assume true; 833946#factEXIT >#66#return; 833891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833851#factFINAL assume true; 833764#factEXIT >#78#return; 833796#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835559#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835558#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835529#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835521#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833840#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834757#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834748#factFINAL assume true; 834673#factEXIT >#74#return; 833452#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833702#$Ultimate##0 ~n := #in~n; 835333#L25 assume !(~n <= 0); 833714#L26 call #t~ret0 := fact(~n - 1);< 833886#$Ultimate##0 ~n := #in~n; 834798#L25 assume !(~n <= 0); 833708#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#76#return; 833664#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834177#$Ultimate##0 ~n := #in~n; 834176#L25 assume !(~n <= 0); 833053#L26 call #t~ret0 := fact(~n - 1);< 834157#$Ultimate##0 ~n := #in~n; 833046#L25 assume !(~n <= 0); 833049#L26 call #t~ret0 := fact(~n - 1);< 834167#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833961#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834480#factFINAL assume true; 834182#factEXIT >#78#return; 834186#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835553#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835552#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835551#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835550#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833811#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834834#factFINAL assume true; 834831#factEXIT >#66#return; 834829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834828#factFINAL assume true; 834824#factEXIT >#66#return; 834786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834817#factFINAL assume true; 834779#factEXIT >#66#return; 834777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834753#factFINAL assume true; 834680#factEXIT >#74#return; 833515#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833702#$Ultimate##0 ~n := #in~n; 835333#L25 assume !(~n <= 0); 833714#L26 call #t~ret0 := fact(~n - 1);< 833886#$Ultimate##0 ~n := #in~n; 834798#L25 assume !(~n <= 0); 833708#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#76#return; 833528#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834162#$Ultimate##0 ~n := #in~n; 834106#L25 assume !(~n <= 0); 833730#L26 call #t~ret0 := fact(~n - 1);< 833955#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#78#return; 833690#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835545#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835544#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835543#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835541#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833820#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 833843#$Ultimate##0 ~n := #in~n; 834877#L25 assume !(~n <= 0); 833880#L26 call #t~ret0 := fact(~n - 1);< 833887#$Ultimate##0 ~n := #in~n; 834915#L25 assume !(~n <= 0); 833732#L26 call #t~ret0 := fact(~n - 1);< 833968#$Ultimate##0 ~n := #in~n; 834819#L25 assume !(~n <= 0); 833731#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833883#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834771#factFINAL assume true; 834758#factEXIT >#66#return; 834762#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834844#factFINAL assume true; 834838#factEXIT >#66#return; 834836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834834#factFINAL assume true; 834831#factEXIT >#66#return; 834829#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834828#factFINAL assume true; 834824#factEXIT >#66#return; 834786#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834817#factFINAL assume true; 834779#factEXIT >#66#return; 834777#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834753#factFINAL assume true; 834680#factEXIT >#74#return; 833552#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 833702#$Ultimate##0 ~n := #in~n; 835333#L25 assume !(~n <= 0); 833714#L26 call #t~ret0 := fact(~n - 1);< 833886#$Ultimate##0 ~n := #in~n; 834798#L25 assume !(~n <= 0); 833708#L26 call #t~ret0 := fact(~n - 1);< 834766#$Ultimate##0 ~n := #in~n; 834795#L25 assume !(~n <= 0); 833718#L26 call #t~ret0 := fact(~n - 1);< 833744#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833741#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833921#factFINAL assume true; 833877#factEXIT >#66#return; 833875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833847#factFINAL assume true; 833806#factEXIT >#76#return; 833545#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 834162#$Ultimate##0 ~n := #in~n; 834106#L25 assume !(~n <= 0); 833730#L26 call #t~ret0 := fact(~n - 1);< 833955#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834802#L25 assume !(~n <= 0); 833729#L26 call #t~ret0 := fact(~n - 1);< 834776#$Ultimate##0 ~n := #in~n; 834173#L25 assume ~n <= 0;#res := 1; 834172#factFINAL assume true; 834165#factEXIT >#66#return; 834164#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 834107#factFINAL assume true; 833959#factEXIT >#66#return; 833958#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833893#factFINAL assume true; 833861#factEXIT >#66#return; 833858#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833852#factFINAL assume true; 833705#factEXIT >#66#return; 833704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 833700#factFINAL assume true; 833441#factEXIT >#78#return; 833669#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 835535#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 835534#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 835532#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 835464#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 833271#L30-5 [2023-02-17 09:43:51,350 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:51,350 INFO L85 PathProgramCache]: Analyzing trace with hash 1080515975, now seen corresponding path program 54 times [2023-02-17 09:43:51,350 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:51,350 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [410723563] [2023-02-17 09:43:51,351 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:51,351 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:51,402 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:51,402 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2144473494] [2023-02-17 09:43:51,403 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:43:51,403 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:51,403 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:51,407 INFO L229 MonitoredProcess]: Starting monitored process 257 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:51,408 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (257)] Waiting until timeout for monitored process [2023-02-17 09:43:52,785 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 27 check-sat command(s) [2023-02-17 09:43:52,785 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:52,792 INFO L263 TraceCheckSpWp]: Trace formula consists of 1376 conjuncts, 28 conjunts are in the unsatisfiable core [2023-02-17 09:43:52,801 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:52,905 INFO L134 CoverageAnalysis]: Checked inductivity of 227014 backedges. 76139 proven. 217 refuted. 0 times theorem prover too weak. 150658 trivial. 0 not checked. [2023-02-17 09:43:52,905 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:53,211 INFO L134 CoverageAnalysis]: Checked inductivity of 227014 backedges. 10451 proven. 2462 refuted. 0 times theorem prover too weak. 214101 trivial. 0 not checked. [2023-02-17 09:43:53,211 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:53,211 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [410723563] [2023-02-17 09:43:53,211 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:53,211 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2144473494] [2023-02-17 09:43:53,211 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2144473494] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:53,211 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:53,211 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 25] total 29 [2023-02-17 09:43:53,212 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1227085939] [2023-02-17 09:43:53,212 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:53,212 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:53,212 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:53,212 INFO L85 PathProgramCache]: Analyzing trace with hash -495319892, now seen corresponding path program 48 times [2023-02-17 09:43:53,212 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:53,212 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1485138810] [2023-02-17 09:43:53,213 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:53,213 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:53,239 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:53,240 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [786771002] [2023-02-17 09:43:53,240 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2023-02-17 09:43:53,240 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:53,240 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:53,243 INFO L229 MonitoredProcess]: Starting monitored process 258 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:53,243 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (258)] Waiting until timeout for monitored process [2023-02-17 09:43:54,390 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 33 check-sat command(s) [2023-02-17 09:43:54,391 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:43:54,394 INFO L263 TraceCheckSpWp]: Trace formula consists of 574 conjuncts, 26 conjunts are in the unsatisfiable core [2023-02-17 09:43:54,399 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:54,485 INFO L134 CoverageAnalysis]: Checked inductivity of 92195 backedges. 9627 proven. 3111 refuted. 0 times theorem prover too weak. 79457 trivial. 0 not checked. [2023-02-17 09:43:54,486 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:54,748 INFO L134 CoverageAnalysis]: Checked inductivity of 92195 backedges. 4823 proven. 3361 refuted. 0 times theorem prover too weak. 84011 trivial. 0 not checked. [2023-02-17 09:43:54,749 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:54,749 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1485138810] [2023-02-17 09:43:54,749 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:54,749 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [786771002] [2023-02-17 09:43:54,749 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [786771002] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:54,749 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:54,750 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 25] total 28 [2023-02-17 09:43:54,750 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1719767073] [2023-02-17 09:43:54,750 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:54,750 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:54,750 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:54,751 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2023-02-17 09:43:54,751 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=115, Invalid=641, Unknown=0, NotChecked=0, Total=756 [2023-02-17 09:43:54,751 INFO L87 Difference]: Start difference. First operand 3371 states and 7376 transitions. cyclomatic complexity: 4039 Second operand has 28 states, 25 states have (on average 3.12) internal successors, (78), 28 states have internal predecessors, (78), 17 states have call successors, (28), 2 states have call predecessors, (28), 12 states have return successors, (34), 13 states have call predecessors, (34), 17 states have call successors, (34) [2023-02-17 09:43:55,857 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:43:55,857 INFO L93 Difference]: Finished difference Result 4949 states and 10585 transitions. [2023-02-17 09:43:55,857 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 4949 states and 10585 transitions. [2023-02-17 09:43:55,894 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 1761 [2023-02-17 09:43:55,940 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 4949 states to 4945 states and 10579 transitions. [2023-02-17 09:43:55,940 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 621 [2023-02-17 09:43:55,940 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 639 [2023-02-17 09:43:55,941 INFO L73 IsDeterministic]: Start isDeterministic. Operand 4945 states and 10579 transitions. [2023-02-17 09:43:55,941 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:43:55,941 INFO L218 hiAutomatonCegarLoop]: Abstraction has 4945 states and 10579 transitions. [2023-02-17 09:43:55,942 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 4945 states and 10579 transitions. [2023-02-17 09:43:56,015 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 4945 to 4325. [2023-02-17 09:43:56,019 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4325 states, 2359 states have (on average 1.042390843577787) internal successors, (2459), 2333 states have internal predecessors, (2459), 1710 states have call successors, (1732), 331 states have call predecessors, (1732), 256 states have return successors, (5452), 1660 states have call predecessors, (5452), 1710 states have call successors, (5452) [2023-02-17 09:43:56,039 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4325 states to 4325 states and 9643 transitions. [2023-02-17 09:43:56,039 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4325 states and 9643 transitions. [2023-02-17 09:43:56,039 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2023-02-17 09:43:56,040 INFO L428 stractBuchiCegarLoop]: Abstraction has 4325 states and 9643 transitions. [2023-02-17 09:43:56,040 INFO L335 stractBuchiCegarLoop]: ======== Iteration 78 ============ [2023-02-17 09:43:56,040 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4325 states and 9643 transitions. [2023-02-17 09:43:56,051 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 1362 [2023-02-17 09:43:56,052 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:43:56,052 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:43:56,059 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [298, 298, 211, 211, 211, 211, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:43:56,059 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [170, 170, 140, 140, 140, 140, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:43:56,060 INFO L748 eck$LassoCheckResult]: Stem: 859530#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 859467#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 859468#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 859490#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 859482#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 859483#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861963#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861961#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861962#$Ultimate##0 ~n := #in~n; 861967#L25 assume ~n <= 0;#res := 1; 861966#factFINAL assume true; 861960#factEXIT >#68#return; 859519#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859520#$Ultimate##0 ~n := #in~n; 862512#L25 assume ~n <= 0;#res := 1; 862511#factFINAL assume true; 862509#factEXIT >#70#return; 859459#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 859460#$Ultimate##0 ~n := #in~n; 863175#L25 assume ~n <= 0;#res := 1; 863173#factFINAL assume true; 863171#factEXIT >#72#return; 863169#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 863017#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 863018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 863076#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 863075#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 863005#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 863074#$Ultimate##0 ~n := #in~n; 863073#L25 assume !(~n <= 0); 863045#L26 call #t~ret0 := fact(~n - 1);< 863061#$Ultimate##0 ~n := #in~n; 863054#L25 assume ~n <= 0;#res := 1; 863050#factFINAL assume true; 863044#factEXIT >#66#return; 863042#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863043#factFINAL assume true; 863004#factEXIT >#74#return; 863006#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 863070#$Ultimate##0 ~n := #in~n; 863072#L25 assume ~n <= 0;#res := 1; 863071#factFINAL assume true; 863069#factEXIT >#76#return; 863027#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 863064#$Ultimate##0 ~n := #in~n; 863063#L25 assume !(~n <= 0); 863046#L26 call #t~ret0 := fact(~n - 1);< 863061#$Ultimate##0 ~n := #in~n; 863054#L25 assume ~n <= 0;#res := 1; 863050#factFINAL assume true; 863044#factEXIT >#66#return; 863047#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863082#factFINAL assume true; 863026#factEXIT >#78#return; 863028#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 863016#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 863014#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 863010#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 863009#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 863007#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 863008#$Ultimate##0 ~n := #in~n; 863025#L25 assume !(~n <= 0); 863020#L26 call #t~ret0 := fact(~n - 1);< 863022#$Ultimate##0 ~n := #in~n; 863077#L25 assume !(~n <= 0); 863021#L26 call #t~ret0 := fact(~n - 1);< 863059#$Ultimate##0 ~n := #in~n; 863080#L25 assume ~n <= 0;#res := 1; 863078#factFINAL assume true; 863057#factEXIT >#66#return; 863055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863056#factFINAL assume true; 863065#factEXIT >#66#return; 863068#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863040#factFINAL assume true; 863041#factEXIT >#74#return; 863032#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 863033#$Ultimate##0 ~n := #in~n; 863049#L25 assume ~n <= 0;#res := 1; 863048#factFINAL assume true; 863031#factEXIT >#76#return; 863029#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 863030#$Ultimate##0 ~n := #in~n; 863053#L25 assume !(~n <= 0); 863051#L26 call #t~ret0 := fact(~n - 1);< 863052#$Ultimate##0 ~n := #in~n; 863062#L25 assume !(~n <= 0); 863058#L26 call #t~ret0 := fact(~n - 1);< 863060#$Ultimate##0 ~n := #in~n; 863080#L25 assume ~n <= 0;#res := 1; 863078#factFINAL assume true; 863057#factEXIT >#66#return; 863055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863056#factFINAL assume true; 863065#factEXIT >#66#return; 863066#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863081#factFINAL assume true; 863079#factEXIT >#78#return; 863023#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 863024#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 863039#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 863038#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 863036#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 863012#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 863008#$Ultimate##0 ~n := #in~n; 863025#L25 assume !(~n <= 0); 863020#L26 call #t~ret0 := fact(~n - 1);< 863022#$Ultimate##0 ~n := #in~n; 863077#L25 assume !(~n <= 0); 863021#L26 call #t~ret0 := fact(~n - 1);< 863059#$Ultimate##0 ~n := #in~n; 863077#L25 assume !(~n <= 0); 863021#L26 call #t~ret0 := fact(~n - 1);< 863059#$Ultimate##0 ~n := #in~n; 863080#L25 assume ~n <= 0;#res := 1; 863078#factFINAL assume true; 863057#factEXIT >#66#return; 863055#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863056#factFINAL assume true; 863065#factEXIT >#66#return; 863067#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863083#factFINAL assume true; 863019#factEXIT >#66#return; 863015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863011#factFINAL assume true; 863013#factEXIT >#74#return; 863002#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 863003#$Ultimate##0 ~n := #in~n; 863085#L25 assume ~n <= 0;#res := 1; 863084#factFINAL assume true; 863001#factEXIT >#76#return; 859533#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 859534#$Ultimate##0 ~n := #in~n; 863130#L25 assume !(~n <= 0); 863124#L26 call #t~ret0 := fact(~n - 1);< 863129#$Ultimate##0 ~n := #in~n; 863151#L25 assume !(~n <= 0); 863126#L26 call #t~ret0 := fact(~n - 1);< 863134#$Ultimate##0 ~n := #in~n; 863150#L25 assume !(~n <= 0); 863127#L26 call #t~ret0 := fact(~n - 1);< 863148#$Ultimate##0 ~n := #in~n; 863152#L25 assume ~n <= 0;#res := 1; 863149#factFINAL assume true; 863147#factEXIT >#66#return; 863146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863145#factFINAL assume true; 863143#factEXIT >#66#return; 863144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863131#factFINAL assume true; 863132#factEXIT >#66#return; 863120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863117#factFINAL assume true; 863107#factEXIT >#78#return; 859471#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 859472#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 859492#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 863157#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 863156#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 863133#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 863155#$Ultimate##0 ~n := #in~n; 863154#L25 assume !(~n <= 0); 863125#L26 call #t~ret0 := fact(~n - 1);< 863134#$Ultimate##0 ~n := #in~n; 863150#L25 assume !(~n <= 0); 863127#L26 call #t~ret0 := fact(~n - 1);< 863148#$Ultimate##0 ~n := #in~n; 863150#L25 assume !(~n <= 0); 863127#L26 call #t~ret0 := fact(~n - 1);< 863148#$Ultimate##0 ~n := #in~n; 863150#L25 assume !(~n <= 0); 863127#L26 call #t~ret0 := fact(~n - 1);< 863148#$Ultimate##0 ~n := #in~n; 863152#L25 assume ~n <= 0;#res := 1; 863149#factFINAL assume true; 863147#factEXIT >#66#return; 863146#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863145#factFINAL assume true; 863143#factEXIT >#66#return; 863144#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863131#factFINAL assume true; 863132#factEXIT >#66#return; 863140#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863141#factFINAL assume true; 863123#factEXIT >#66#return; 863128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863424#factFINAL assume true; 863423#factEXIT >#74#return; 863394#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 863395#$Ultimate##0 ~n := #in~n; 863421#L25 assume ~n <= 0;#res := 1; 863419#factFINAL assume true; 863393#factEXIT >#76#return; 863385#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 863389#$Ultimate##0 ~n := #in~n; 863387#L25 assume !(~n <= 0); 863299#L26 call #t~ret0 := fact(~n - 1);< 863386#$Ultimate##0 ~n := #in~n; 863449#L25 assume !(~n <= 0); 863306#L26 call #t~ret0 := fact(~n - 1);< 863391#$Ultimate##0 ~n := #in~n; 863437#L25 assume !(~n <= 0); 863307#L26 call #t~ret0 := fact(~n - 1);< 863436#$Ultimate##0 ~n := #in~n; 863437#L25 assume !(~n <= 0); 863307#L26 call #t~ret0 := fact(~n - 1);< 863436#$Ultimate##0 ~n := #in~n; 863440#L25 assume ~n <= 0;#res := 1; 863438#factFINAL assume true; 863435#factEXIT >#66#return; 863432#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863430#factFINAL assume true; 863417#factEXIT >#66#return; 863416#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863415#factFINAL assume true; 863390#factEXIT >#66#return; 863388#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863384#factFINAL assume true; 863341#factEXIT >#66#return; 863342#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 863545#factFINAL assume true; 863542#factEXIT >#78#return; 862516#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862508#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862500#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862497#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 860625#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860530#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860531#$Ultimate##0 ~n := #in~n; 860989#L25 assume !(~n <= 0); 860623#L26 call #t~ret0 := fact(~n - 1);< 860624#$Ultimate##0 ~n := #in~n; 861581#L25 assume !(~n <= 0); 861023#L26 call #t~ret0 := fact(~n - 1);< 861024#$Ultimate##0 ~n := #in~n; 861786#L25 assume !(~n <= 0); 861783#L26 call #t~ret0 := fact(~n - 1);< 861785#$Ultimate##0 ~n := #in~n; 861838#L25 assume !(~n <= 0); 861784#L26 call #t~ret0 := fact(~n - 1);< 861837#$Ultimate##0 ~n := #in~n; 861838#L25 assume !(~n <= 0); 861784#L26 call #t~ret0 := fact(~n - 1);< 861837#$Ultimate##0 ~n := #in~n; 861844#L25 assume ~n <= 0;#res := 1; 861842#factFINAL assume true; 861841#factEXIT >#66#return; 861840#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861839#factFINAL assume true; 861836#factEXIT >#66#return; 861834#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861833#factFINAL assume true; 861782#factEXIT >#66#return; 861576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861574#factFINAL assume true; 861022#factEXIT >#66#return; 860988#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860987#factFINAL assume true; 860622#factEXIT >#66#return; 860618#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860617#factFINAL assume true; 860529#factEXIT >#74#return; 860301#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860302#$Ultimate##0 ~n := #in~n; 860307#L25 assume ~n <= 0;#res := 1; 860305#factFINAL assume true; 860300#factEXIT >#76#return; 859789#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 859793#$Ultimate##0 ~n := #in~n; 859788#L25 assume !(~n <= 0); 859762#L26 call #t~ret0 := fact(~n - 1);< 859825#$Ultimate##0 ~n := #in~n; 860304#L25 assume !(~n <= 0); 859759#L26 call #t~ret0 := fact(~n - 1);< 859941#$Ultimate##0 ~n := #in~n; 860257#L25 assume !(~n <= 0); 859761#L26 call #t~ret0 := fact(~n - 1);< 860243#$Ultimate##0 ~n := #in~n; 860297#L25 assume !(~n <= 0); 859758#L26 call #t~ret0 := fact(~n - 1);< 860256#$Ultimate##0 ~n := #in~n; 860287#L25 assume !(~n <= 0); 859755#L26 call #t~ret0 := fact(~n - 1);< 860271#$Ultimate##0 ~n := #in~n; 860285#L25 assume ~n <= 0;#res := 1; 860284#factFINAL assume true; 860270#factEXIT >#66#return; 860263#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860260#factFINAL assume true; 860255#factEXIT >#66#return; 860254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860253#factFINAL assume true; 860242#factEXIT >#66#return; 860241#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860240#factFINAL assume true; 859940#factEXIT >#66#return; 859938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859937#factFINAL assume true; 859824#factEXIT >#66#return; 859766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859858#factFINAL assume true; 859849#factEXIT >#78#return; 859727#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 859726#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 859725#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 859695#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 859693#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 859691#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 859689#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 859687#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859461#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 859462#$Ultimate##0 ~n := #in~n; 859806#L25 assume !(~n <= 0); 859624#L26 call #t~ret0 := fact(~n - 1);< 859803#$Ultimate##0 ~n := #in~n; 861794#L25 assume ~n <= 0;#res := 1; 861793#factFINAL assume true; 861792#factEXIT >#66#return; 861790#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861788#factFINAL assume true; 861787#factEXIT >#68#return; 859589#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859606#$Ultimate##0 ~n := #in~n; 859613#L25 assume ~n <= 0;#res := 1; 859605#factFINAL assume true; 859571#factEXIT >#70#return; 859604#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861585#$Ultimate##0 ~n := #in~n; 861614#L25 assume !(~n <= 0); 859474#L26 call #t~ret0 := fact(~n - 1);< 861612#$Ultimate##0 ~n := #in~n; 861621#L25 assume ~n <= 0;#res := 1; 861620#factFINAL assume true; 861611#factEXIT >#66#return; 861609#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861608#factFINAL assume true; 861584#factEXIT >#72#return; 861583#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861582#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 861580#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861579#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861578#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861569#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861575#$Ultimate##0 ~n := #in~n; 862008#L25 assume !(~n <= 0); 860581#L26 call #t~ret0 := fact(~n - 1);< 860677#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861586#factFINAL assume true; 861568#factEXIT >#68#return; 861570#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861573#$Ultimate##0 ~n := #in~n; 863196#L25 assume !(~n <= 0); 860609#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861586#factFINAL assume true; 861568#factEXIT >#70#return; 861118#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861566#$Ultimate##0 ~n := #in~n; 861605#L25 assume ~n <= 0;#res := 1; 861016#factFINAL assume true; 861109#factEXIT >#72#return; 861165#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861565#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 861563#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861562#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861021#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860021#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860984#$Ultimate##0 ~n := #in~n; 860958#L25 assume !(~n <= 0); 860541#L26 call #t~ret0 := fact(~n - 1);< 860615#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#74#return; 860472#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860505#$Ultimate##0 ~n := #in~n; 862501#L25 assume !(~n <= 0); 860606#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#76#return; 860481#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860505#$Ultimate##0 ~n := #in~n; 862501#L25 assume !(~n <= 0); 860606#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#78#return; 860503#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861020#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 861019#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861017#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861014#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860398#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860620#$Ultimate##0 ~n := #in~n; 862794#L25 assume !(~n <= 0); 860563#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#74#return; 860477#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860505#$Ultimate##0 ~n := #in~n; 862501#L25 assume !(~n <= 0); 860606#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#76#return; 860500#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860982#$Ultimate##0 ~n := #in~n; 861564#L25 assume !(~n <= 0); 860998#L26 call #t~ret0 := fact(~n - 1);< 861003#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#78#return; 860970#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 860969#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 860968#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 860966#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 860965#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860405#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860620#$Ultimate##0 ~n := #in~n; 862794#L25 assume !(~n <= 0); 860563#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#74#return; 860451#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860505#$Ultimate##0 ~n := #in~n; 862501#L25 assume !(~n <= 0); 860606#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#76#return; 860403#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860454#$Ultimate##0 ~n := #in~n; 863198#L25 assume !(~n <= 0); 860550#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#78#return; 860519#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 860515#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 860513#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 860512#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 860508#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860141#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860527#factFINAL assume true; 860506#factEXIT >#74#return; 860480#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860505#$Ultimate##0 ~n := #in~n; 862501#L25 assume !(~n <= 0); 860606#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#76#return; 860416#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860454#$Ultimate##0 ~n := #in~n; 863198#L25 assume !(~n <= 0); 860550#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#78#return; 860310#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 860309#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 860308#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 860306#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 860303#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859833#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 859437#$Ultimate##0 ~n := #in~n; 860526#L25 assume !(~n <= 0); 859981#L26 call #t~ret0 := fact(~n - 1);< 860523#$Ultimate##0 ~n := #in~n; 861975#L25 assume !(~n <= 0); 859960#L26 call #t~ret0 := fact(~n - 1);< 859982#$Ultimate##0 ~n := #in~n; 861983#L25 assume !(~n <= 0); 859954#L26 call #t~ret0 := fact(~n - 1);< 860214#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860237#factFINAL assume true; 860225#factEXIT >#66#return; 860223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860215#factFINAL assume true; 860209#factEXIT >#66#return; 859985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859980#factFINAL assume true; 859949#factEXIT >#66#return; 859962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860522#factFINAL assume true; 860516#factEXIT >#66#return; 860517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861577#factFINAL assume true; 859826#factEXIT >#74#return; 859814#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859816#$Ultimate##0 ~n := #in~n; 860251#L25 assume !(~n <= 0); 859855#L26 call #t~ret0 := fact(~n - 1);< 859856#$Ultimate##0 ~n := #in~n; 859859#L25 assume ~n <= 0;#res := 1; 859857#factFINAL assume true; 859854#factEXIT >#66#return; 859852#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859850#factFINAL assume true; 859812#factEXIT >#76#return; 859700#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860283#$Ultimate##0 ~n := #in~n; 860282#L25 assume !(~n <= 0); 859961#L26 call #t~ret0 := fact(~n - 1);< 860280#$Ultimate##0 ~n := #in~n; 860279#L25 assume !(~n <= 0); 859955#L26 call #t~ret0 := fact(~n - 1);< 860214#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860237#factFINAL assume true; 860225#factEXIT >#66#return; 860223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860215#factFINAL assume true; 860209#factEXIT >#66#return; 859985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859980#factFINAL assume true; 859949#factEXIT >#66#return; 859962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860522#factFINAL assume true; 860516#factEXIT >#66#return; 860517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861577#factFINAL assume true; 859826#factEXIT >#78#return; 859694#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 859692#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 859690#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 859688#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 859686#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 859685#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 859684#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 859683#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859676#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 859680#$Ultimate##0 ~n := #in~n; 859677#L25 assume !(~n <= 0); 859618#L26 call #t~ret0 := fact(~n - 1);< 859654#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859739#L25 assume ~n <= 0;#res := 1; 859728#factFINAL assume true; 859681#factEXIT >#66#return; 859679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859675#factFINAL assume true; 859671#factEXIT >#66#return; 859672#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861623#factFINAL assume true; 861622#factEXIT >#68#return; 859588#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859606#$Ultimate##0 ~n := #in~n; 859613#L25 assume ~n <= 0;#res := 1; 859605#factFINAL assume true; 859571#factEXIT >#70#return; 859603#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861619#$Ultimate##0 ~n := #in~n; 861632#L25 assume !(~n <= 0); 859475#L26 call #t~ret0 := fact(~n - 1);< 860680#$Ultimate##0 ~n := #in~n; 860679#L25 assume !(~n <= 0); 859473#L26 call #t~ret0 := fact(~n - 1);< 859478#$Ultimate##0 ~n := #in~n; 861875#L25 assume ~n <= 0;#res := 1; 861867#factFINAL assume true; 861821#factEXIT >#66#return; 861819#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861795#factFINAL assume true; 861627#factEXIT >#66#return; 861625#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861624#factFINAL assume true; 861618#factEXIT >#72#return; 861617#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861616#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 861615#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861613#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861610#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861311#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861561#$Ultimate##0 ~n := #in~n; 861607#L25 assume !(~n <= 0); 860582#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861560#factFINAL assume true; 861240#factEXIT >#68#return; 861316#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861559#$Ultimate##0 ~n := #in~n; 862081#L25 assume !(~n <= 0); 860561#L26 call #t~ret0 := fact(~n - 1);< 860613#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860612#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861586#factFINAL assume true; 861568#factEXIT >#70#return; 860890#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861238#$Ultimate##0 ~n := #in~n; 862499#L25 assume !(~n <= 0); 860607#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861860#factFINAL assume true; 861856#factEXIT >#72#return; 861855#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861854#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 861801#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861799#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861798#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861340#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861561#$Ultimate##0 ~n := #in~n; 861607#L25 assume !(~n <= 0); 860582#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861560#factFINAL assume true; 861240#factEXIT >#68#return; 861338#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861559#$Ultimate##0 ~n := #in~n; 862081#L25 assume !(~n <= 0); 860561#L26 call #t~ret0 := fact(~n - 1);< 860613#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861560#factFINAL assume true; 861240#factEXIT >#70#return; 860893#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861238#$Ultimate##0 ~n := #in~n; 862499#L25 assume ~n <= 0;#res := 1; 861016#factFINAL assume true; 861109#factEXIT >#72#return; 861007#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 860994#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 860992#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 860991#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 860990#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860357#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860620#$Ultimate##0 ~n := #in~n; 862794#L25 assume !(~n <= 0); 860563#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#74#return; 860358#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860985#$Ultimate##0 ~n := #in~n; 861973#L25 assume !(~n <= 0); 860545#L26 call #t~ret0 := fact(~n - 1);< 861004#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#76#return; 860479#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860986#$Ultimate##0 ~n := #in~n; 861595#L25 assume !(~n <= 0); 860608#L26 call #t~ret0 := fact(~n - 1);< 861027#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#78#return; 860502#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861770#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 861769#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861768#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861767#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860363#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860620#$Ultimate##0 ~n := #in~n; 862794#L25 assume !(~n <= 0); 860563#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#74#return; 860364#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860985#$Ultimate##0 ~n := #in~n; 861973#L25 assume !(~n <= 0); 860545#L26 call #t~ret0 := fact(~n - 1);< 861004#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#76#return; 860482#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860986#$Ultimate##0 ~n := #in~n; 861595#L25 assume !(~n <= 0); 860608#L26 call #t~ret0 := fact(~n - 1);< 861027#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#78#return; 860980#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861931#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 861929#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861928#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861927#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860147#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860527#factFINAL assume true; 860506#factEXIT >#74#return; 860362#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860985#$Ultimate##0 ~n := #in~n; 861973#L25 assume !(~n <= 0); 860545#L26 call #t~ret0 := fact(~n - 1);< 861004#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#76#return; 860361#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860454#$Ultimate##0 ~n := #in~n; 863198#L25 assume !(~n <= 0); 860550#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#78#return; 860438#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861925#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 861924#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 861923#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 861922#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860159#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861815#factFINAL assume true; 859986#factEXIT >#74#return; 860205#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860985#$Ultimate##0 ~n := #in~n; 861973#L25 assume !(~n <= 0); 860545#L26 call #t~ret0 := fact(~n - 1);< 861004#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#76#return; 859998#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860462#$Ultimate##0 ~n := #in~n; 862477#L25 assume !(~n <= 0); 860556#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#78#return; 860181#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 860292#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 860291#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 860289#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 860288#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859836#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 859437#$Ultimate##0 ~n := #in~n; 860526#L25 assume !(~n <= 0); 859981#L26 call #t~ret0 := fact(~n - 1);< 860523#$Ultimate##0 ~n := #in~n; 861975#L25 assume !(~n <= 0); 859960#L26 call #t~ret0 := fact(~n - 1);< 859982#$Ultimate##0 ~n := #in~n; 861983#L25 assume !(~n <= 0); 859954#L26 call #t~ret0 := fact(~n - 1);< 860214#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860237#factFINAL assume true; 860225#factEXIT >#66#return; 860223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860215#factFINAL assume true; 860209#factEXIT >#66#return; 859985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859980#factFINAL assume true; 859949#factEXIT >#66#return; 859962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860522#factFINAL assume true; 860516#factEXIT >#66#return; 860517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861577#factFINAL assume true; 859826#factEXIT >#74#return; 859839#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860268#$Ultimate##0 ~n := #in~n; 860262#L25 assume !(~n <= 0); 860212#L26 call #t~ret0 := fact(~n - 1);< 860259#$Ultimate##0 ~n := #in~n; 860295#L25 assume !(~n <= 0); 860226#L26 call #t~ret0 := fact(~n - 1);< 860266#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860290#factFINAL assume true; 860286#factEXIT >#76#return; 859710#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860283#$Ultimate##0 ~n := #in~n; 860282#L25 assume !(~n <= 0); 859961#L26 call #t~ret0 := fact(~n - 1);< 860280#$Ultimate##0 ~n := #in~n; 860279#L25 assume !(~n <= 0); 859955#L26 call #t~ret0 := fact(~n - 1);< 860214#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860237#factFINAL assume true; 860225#factEXIT >#66#return; 860223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860215#factFINAL assume true; 860209#factEXIT >#66#return; 859985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859980#factFINAL assume true; 859949#factEXIT >#66#return; 859962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860522#factFINAL assume true; 860516#factEXIT >#66#return; 860517#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861577#factFINAL assume true; 859826#factEXIT >#78#return; 859721#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 861750#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 861868#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 859807#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 859808#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 859802#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 859800#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 859493#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859494#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 859657#$Ultimate##0 ~n := #in~n; 859655#L25 assume !(~n <= 0); 859617#L26 call #t~ret0 := fact(~n - 1);< 859654#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859739#L25 assume ~n <= 0;#res := 1; 859728#factFINAL assume true; 859681#factEXIT >#66#return; 859679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859675#factFINAL assume true; 859671#factEXIT >#66#return; 859669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859668#factFINAL assume true; 859665#factEXIT >#66#return; 859664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859663#factFINAL assume true; 859660#factEXIT >#66#return; 859661#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861979#factFINAL assume true; 861978#factEXIT >#68#return; 859581#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859606#$Ultimate##0 ~n := #in~n; 859613#L25 assume ~n <= 0;#res := 1; 859605#factFINAL assume true; 859571#factEXIT >#70#return; 859598#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861749#$Ultimate##0 ~n := #in~n; 862263#L25 assume !(~n <= 0); 862232#L26 call #t~ret0 := fact(~n - 1);< 862262#$Ultimate##0 ~n := #in~n; 862271#L25 assume !(~n <= 0); 862253#L26 call #t~ret0 := fact(~n - 1);< 862270#$Ultimate##0 ~n := #in~n; 862296#L25 assume !(~n <= 0); 862267#L26 call #t~ret0 := fact(~n - 1);< 862277#$Ultimate##0 ~n := #in~n; 862316#L25 assume ~n <= 0;#res := 1; 862314#factFINAL assume true; 862283#factEXIT >#66#return; 862281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862280#factFINAL assume true; 862274#factEXIT >#66#return; 862273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862272#factFINAL assume true; 862265#factEXIT >#66#return; 862254#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862331#factFINAL assume true; 862182#factEXIT >#72#return; 862181#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862180#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862178#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862177#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862175#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859443#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 862174#$Ultimate##0 ~n := #in~n; 862207#L25 assume !(~n <= 0); 862199#L26 call #t~ret0 := fact(~n - 1);< 862202#$Ultimate##0 ~n := #in~n; 862324#L25 assume !(~n <= 0); 862197#L26 call #t~ret0 := fact(~n - 1);< 862248#$Ultimate##0 ~n := #in~n; 862322#L25 assume !(~n <= 0); 862196#L26 call #t~ret0 := fact(~n - 1);< 862483#$Ultimate##0 ~n := #in~n; 862322#L25 assume !(~n <= 0); 862196#L26 call #t~ret0 := fact(~n - 1);< 862483#$Ultimate##0 ~n := #in~n; 862489#L25 assume ~n <= 0;#res := 1; 862487#factFINAL assume true; 862481#factEXIT >#66#return; 862479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862257#factFINAL assume true; 862246#factEXIT >#66#return; 862243#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862237#factFINAL assume true; 862223#factEXIT >#66#return; 862221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862219#factFINAL assume true; 862211#factEXIT >#66#return; 862212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862438#factFINAL assume true; 862437#factEXIT >#68#return; 862153#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859518#$Ultimate##0 ~n := #in~n; 862189#L25 assume ~n <= 0;#res := 1; 862188#factFINAL assume true; 862149#factEXIT >#70#return; 861602#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861606#$Ultimate##0 ~n := #in~n; 861604#L25 assume !(~n <= 0); 860543#L26 call #t~ret0 := fact(~n - 1);< 861597#$Ultimate##0 ~n := #in~n; 861596#L25 assume !(~n <= 0); 860538#L26 call #t~ret0 := fact(~n - 1);< 861004#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860570#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862301#factFINAL assume true; 862147#factEXIT >#72#return; 862100#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862098#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862096#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862094#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862082#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861647#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861733#$Ultimate##0 ~n := #in~n; 861756#L25 assume !(~n <= 0); 860566#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860571#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862076#factFINAL assume true; 862075#factEXIT >#68#return; 861433#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861559#$Ultimate##0 ~n := #in~n; 862081#L25 assume !(~n <= 0); 860561#L26 call #t~ret0 := fact(~n - 1);< 860613#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861560#factFINAL assume true; 861240#factEXIT >#70#return; 861071#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861108#$Ultimate##0 ~n := #in~n; 861107#L25 assume ~n <= 0;#res := 1; 861016#factFINAL assume true; 861109#factEXIT >#72#return; 861208#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862080#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862079#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862078#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862077#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861656#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861733#$Ultimate##0 ~n := #in~n; 861756#L25 assume !(~n <= 0); 860566#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862179#factFINAL assume true; 862176#factEXIT >#68#return; 861466#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861559#$Ultimate##0 ~n := #in~n; 862081#L25 assume !(~n <= 0); 860561#L26 call #t~ret0 := fact(~n - 1);< 860613#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861800#factFINAL assume true; 861633#factEXIT >#70#return; 860750#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 862291#$Ultimate##0 ~n := #in~n; 862502#L25 assume ~n <= 0;#res := 1; 861016#factFINAL assume true; 861109#factEXIT >#72#return; 861222#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862386#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862385#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862384#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862383#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860083#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860462#$Ultimate##0 ~n := #in~n; 862477#L25 assume !(~n <= 0); 860556#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#74#return; 860406#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860454#$Ultimate##0 ~n := #in~n; 863198#L25 assume !(~n <= 0); 860550#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#76#return; 860469#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860505#$Ultimate##0 ~n := #in~n; 862501#L25 assume !(~n <= 0); 860606#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#78#return; 860493#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862443#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862442#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862441#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862440#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860025#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860527#factFINAL assume true; 860506#factEXIT >#74#return; 860350#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860454#$Ultimate##0 ~n := #in~n; 863198#L25 assume !(~n <= 0); 860550#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#76#return; 860368#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861012#$Ultimate##0 ~n := #in~n; 860678#L25 assume !(~n <= 0); 860553#L26 call #t~ret0 := fact(~n - 1);< 860613#$Ultimate##0 ~n := #in~n; 862510#L25 assume !(~n <= 0); 860579#L26 call #t~ret0 := fact(~n - 1);< 861593#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#78#return; 860981#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862458#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862456#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862454#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862452#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859999#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861820#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861815#factFINAL assume true; 859986#factEXIT >#74#return; 860168#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860454#$Ultimate##0 ~n := #in~n; 863198#L25 assume !(~n <= 0); 860550#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#76#return; 860122#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860984#$Ultimate##0 ~n := #in~n; 860958#L25 assume !(~n <= 0); 860541#L26 call #t~ret0 := fact(~n - 1);< 860615#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#78#return; 860427#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862451#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862450#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862449#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862448#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860155#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861950#factFINAL assume true; 861943#factEXIT >#66#return; 861948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862598#factFINAL assume true; 862595#factEXIT >#66#return; 862596#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862610#factFINAL assume true; 861771#factEXIT >#74#return; 860326#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860454#$Ultimate##0 ~n := #in~n; 863198#L25 assume !(~n <= 0); 860550#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#76#return; 860026#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860984#$Ultimate##0 ~n := #in~n; 860958#L25 assume !(~n <= 0); 860541#L26 call #t~ret0 := fact(~n - 1);< 860615#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#78#return; 860196#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862784#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862779#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862780#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862724#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859436#L30-5 [2023-02-17 09:43:56,060 INFO L750 eck$LassoCheckResult]: Loop: 859436#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 859437#$Ultimate##0 ~n := #in~n; 860526#L25 assume !(~n <= 0); 859981#L26 call #t~ret0 := fact(~n - 1);< 860523#$Ultimate##0 ~n := #in~n; 861975#L25 assume !(~n <= 0); 859960#L26 call #t~ret0 := fact(~n - 1);< 859982#$Ultimate##0 ~n := #in~n; 861983#L25 assume !(~n <= 0); 859954#L26 call #t~ret0 := fact(~n - 1);< 860214#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860237#factFINAL assume true; 860225#factEXIT >#66#return; 860223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860215#factFINAL assume true; 860209#factEXIT >#66#return; 859985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859980#factFINAL assume true; 859949#factEXIT >#66#return; 859962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860522#factFINAL assume true; 860516#factEXIT >#66#return; 860514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860509#factFINAL assume true; 860455#factEXIT >#66#return; 860459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862534#factFINAL assume true; 862535#factEXIT >#66#return; 862528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862527#factFINAL assume true; 859964#factEXIT >#74#return; 859969#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 860276#$Ultimate##0 ~n := #in~n; 860275#L25 assume !(~n <= 0); 860210#L26 call #t~ret0 := fact(~n - 1);< 860216#$Ultimate##0 ~n := #in~n; 860274#L25 assume !(~n <= 0); 860228#L26 call #t~ret0 := fact(~n - 1);< 860231#$Ultimate##0 ~n := #in~n; 860281#L25 assume !(~n <= 0); 860247#L26 call #t~ret0 := fact(~n - 1);< 860249#$Ultimate##0 ~n := #in~n; 860269#L25 assume !(~n <= 0); 859522#L26 call #t~ret0 := fact(~n - 1);< 859521#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860237#factFINAL assume true; 860225#factEXIT >#66#return; 860223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860215#factFINAL assume true; 860209#factEXIT >#66#return; 860213#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861813#factFINAL assume true; 861810#factEXIT >#76#return; 859699#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860299#$Ultimate##0 ~n := #in~n; 860298#L25 assume !(~n <= 0); 859951#L26 call #t~ret0 := fact(~n - 1);< 860296#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 860294#L25 assume !(~n <= 0); 859952#L26 call #t~ret0 := fact(~n - 1);< 860267#$Ultimate##0 ~n := #in~n; 859523#L25 assume ~n <= 0;#res := 1; 860272#factFINAL assume true; 860264#factEXIT >#66#return; 860261#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860258#factFINAL assume true; 860245#factEXIT >#66#return; 860244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860237#factFINAL assume true; 860225#factEXIT >#66#return; 860223#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860215#factFINAL assume true; 860209#factEXIT >#66#return; 859985#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859980#factFINAL assume true; 859949#factEXIT >#66#return; 859962#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860522#factFINAL assume true; 860516#factEXIT >#66#return; 860514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860509#factFINAL assume true; 860455#factEXIT >#66#return; 860459#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862534#factFINAL assume true; 862535#factEXIT >#66#return; 862528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862527#factFINAL assume true; 859964#factEXIT >#78#return; 859469#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 859470#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 859491#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 859514#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 859515#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 859537#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 859535#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 859536#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859608#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 859612#$Ultimate##0 ~n := #in~n; 859640#L25 assume !(~n <= 0); 859619#L26 call #t~ret0 := fact(~n - 1);< 859636#$Ultimate##0 ~n := #in~n; 859740#L25 assume !(~n <= 0); 859627#L26 call #t~ret0 := fact(~n - 1);< 859673#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859729#L25 assume !(~n <= 0); 859621#L26 call #t~ret0 := fact(~n - 1);< 859682#$Ultimate##0 ~n := #in~n; 859739#L25 assume ~n <= 0;#res := 1; 859728#factFINAL assume true; 859681#factEXIT >#66#return; 859679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859675#factFINAL assume true; 859671#factEXIT >#66#return; 859669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859668#factFINAL assume true; 859665#factEXIT >#66#return; 859664#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859663#factFINAL assume true; 859660#factEXIT >#66#return; 859656#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859652#factFINAL assume true; 859649#factEXIT >#66#return; 859646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859645#factFINAL assume true; 859641#factEXIT >#66#return; 859637#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 859635#factFINAL assume true; 859633#factEXIT >#66#return; 859634#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862038#factFINAL assume true; 862034#factEXIT >#68#return; 859580#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859462#$Ultimate##0 ~n := #in~n; 859806#L25 assume ~n <= 0;#res := 1; 859605#factFINAL assume true; 859571#factEXIT >#70#return; 859539#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 859544#$Ultimate##0 ~n := #in~n; 862329#L25 assume !(~n <= 0); 862326#L26 call #t~ret0 := fact(~n - 1);< 862328#$Ultimate##0 ~n := #in~n; 862325#L25 assume !(~n <= 0); 862241#L26 call #t~ret0 := fact(~n - 1);< 862300#$Ultimate##0 ~n := #in~n; 862299#L25 assume !(~n <= 0); 862233#L26 call #t~ret0 := fact(~n - 1);< 862236#$Ultimate##0 ~n := #in~n; 862371#L25 assume !(~n <= 0); 862252#L26 call #t~ret0 := fact(~n - 1);< 862256#$Ultimate##0 ~n := #in~n; 862295#L25 assume !(~n <= 0); 862266#L26 call #t~ret0 := fact(~n - 1);< 862268#$Ultimate##0 ~n := #in~n; 862315#L25 assume !(~n <= 0); 862275#L26 call #t~ret0 := fact(~n - 1);< 862278#$Ultimate##0 ~n := #in~n; 862494#L25 assume !(~n <= 0); 862284#L26 call #t~ret0 := fact(~n - 1);< 862287#$Ultimate##0 ~n := #in~n; 862316#L25 assume ~n <= 0;#res := 1; 862314#factFINAL assume true; 862283#factEXIT >#66#return; 862281#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862280#factFINAL assume true; 862274#factEXIT >#66#return; 862273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862272#factFINAL assume true; 862265#factEXIT >#66#return; 862264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862261#factFINAL assume true; 862251#factEXIT >#66#return; 862245#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862240#factFINAL assume true; 862226#factEXIT >#66#return; 862235#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862636#factFINAL assume true; 862634#factEXIT >#66#return; 862633#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862632#factFINAL assume true; 862630#factEXIT >#66#return; 862631#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862777#factFINAL assume true; 862775#factEXIT >#72#return; 862215#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862772#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862768#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862764#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862761#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859444#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 862174#$Ultimate##0 ~n := #in~n; 862207#L25 assume !(~n <= 0); 862199#L26 call #t~ret0 := fact(~n - 1);< 862202#$Ultimate##0 ~n := #in~n; 862324#L25 assume !(~n <= 0); 862197#L26 call #t~ret0 := fact(~n - 1);< 862248#$Ultimate##0 ~n := #in~n; 862322#L25 assume !(~n <= 0); 862196#L26 call #t~ret0 := fact(~n - 1);< 862483#$Ultimate##0 ~n := #in~n; 862322#L25 assume !(~n <= 0); 862196#L26 call #t~ret0 := fact(~n - 1);< 862483#$Ultimate##0 ~n := #in~n; 862322#L25 assume !(~n <= 0); 862196#L26 call #t~ret0 := fact(~n - 1);< 862483#$Ultimate##0 ~n := #in~n; 862489#L25 assume ~n <= 0;#res := 1; 862487#factFINAL assume true; 862481#factEXIT >#66#return; 862479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862257#factFINAL assume true; 862246#factEXIT >#66#return; 862243#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862237#factFINAL assume true; 862223#factEXIT >#66#return; 862221#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862219#factFINAL assume true; 862211#factEXIT >#66#return; 862209#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862204#factFINAL assume true; 862194#factEXIT >#66#return; 862192#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862190#factFINAL assume true; 862173#factEXIT >#68#return; 862159#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 859518#$Ultimate##0 ~n := #in~n; 862189#L25 assume ~n <= 0;#res := 1; 862188#factFINAL assume true; 862149#factEXIT >#70#return; 860733#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 862146#$Ultimate##0 ~n := #in~n; 862498#L25 assume !(~n <= 0); 860575#L26 call #t~ret0 := fact(~n - 1);< 860734#$Ultimate##0 ~n := #in~n; 863088#L25 assume !(~n <= 0); 860567#L26 call #t~ret0 := fact(~n - 1);< 860572#$Ultimate##0 ~n := #in~n; 863197#L25 assume !(~n <= 0); 860578#L26 call #t~ret0 := fact(~n - 1);< 860589#$Ultimate##0 ~n := #in~n; 862542#L25 assume !(~n <= 0); 860997#L26 call #t~ret0 := fact(~n - 1);< 861003#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860599#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862148#factFINAL assume true; 862101#factEXIT >#72#return; 862110#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862745#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862744#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862738#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862737#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861663#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861733#$Ultimate##0 ~n := #in~n; 861756#L25 assume !(~n <= 0); 860566#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862179#factFINAL assume true; 862176#factEXIT >#68#return; 861496#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861874#$Ultimate##0 ~n := #in~n; 861873#L25 assume !(~n <= 0); 860559#L26 call #t~ret0 := fact(~n - 1);< 861567#$Ultimate##0 ~n := #in~n; 861797#L25 assume !(~n <= 0); 860555#L26 call #t~ret0 := fact(~n - 1);< 861592#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861002#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861560#factFINAL assume true; 861240#factEXIT >#70#return; 860670#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861239#$Ultimate##0 ~n := #in~n; 861008#L25 assume !(~n <= 0); 860539#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860586#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862750#factFINAL assume true; 862111#factEXIT >#72#return; 862145#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862807#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862806#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862805#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862804#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861675#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861733#$Ultimate##0 ~n := #in~n; 861756#L25 assume !(~n <= 0); 860566#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861950#factFINAL assume true; 861943#factEXIT >#66#return; 861946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862668#factFINAL assume true; 862667#factEXIT >#68#return; 861276#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861863#$Ultimate##0 ~n := #in~n; 861862#L25 assume !(~n <= 0); 860554#L26 call #t~ret0 := fact(~n - 1);< 860615#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861950#factFINAL assume true; 861943#factEXIT >#66#return; 861948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862598#factFINAL assume true; 862595#factEXIT >#66#return; 862594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862593#factFINAL assume true; 862589#factEXIT >#66#return; 862585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862587#factFINAL assume true; 862580#factEXIT >#66#return; 862583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862832#factFINAL assume true; 862831#factEXIT >#70#return; 860871#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861238#$Ultimate##0 ~n := #in~n; 862499#L25 assume !(~n <= 0); 860607#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861860#factFINAL assume true; 861856#factEXIT >#72#return; 861175#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862684#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862670#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862669#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 861692#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 861733#$Ultimate##0 ~n := #in~n; 861756#L25 assume !(~n <= 0); 860566#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861950#factFINAL assume true; 861943#factEXIT >#66#return; 861946#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862668#factFINAL assume true; 862667#factEXIT >#68#return; 861346#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861863#$Ultimate##0 ~n := #in~n; 861862#L25 assume !(~n <= 0); 860554#L26 call #t~ret0 := fact(~n - 1);< 860615#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861950#factFINAL assume true; 861943#factEXIT >#66#return; 861948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862598#factFINAL assume true; 862595#factEXIT >#66#return; 862594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862593#factFINAL assume true; 862589#factEXIT >#66#return; 862585#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862587#factFINAL assume true; 862580#factEXIT >#66#return; 862583#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862832#factFINAL assume true; 862831#factEXIT >#70#return; 860831#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 861238#$Ultimate##0 ~n := #in~n; 862499#L25 assume ~n <= 0;#res := 1; 861016#factFINAL assume true; 861109#factEXIT >#72#return; 861200#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862658#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 862642#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862643#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862638#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860088#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860462#$Ultimate##0 ~n := #in~n; 862477#L25 assume !(~n <= 0); 860556#L26 call #t~ret0 := fact(~n - 1);< 861804#$Ultimate##0 ~n := #in~n; 861760#L25 assume !(~n <= 0); 860565#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#74#return; 860356#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 861976#$Ultimate##0 ~n := #in~n; 861970#L25 assume !(~n <= 0); 860551#L26 call #t~ret0 := fact(~n - 1);< 860602#$Ultimate##0 ~n := #in~n; 861971#L25 assume !(~n <= 0); 860546#L26 call #t~ret0 := fact(~n - 1);< 860590#$Ultimate##0 ~n := #in~n; 863097#L25 assume !(~n <= 0); 860580#L26 call #t~ret0 := fact(~n - 1);< 861005#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#76#return; 860430#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860505#$Ultimate##0 ~n := #in~n; 862501#L25 assume !(~n <= 0); 860606#L26 call #t~ret0 := fact(~n - 1);< 860614#$Ultimate##0 ~n := #in~n; 860961#L25 assume ~n <= 0;#res := 1; 860735#factFINAL assume true; 860605#factEXIT >#66#return; 860603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860528#factFINAL assume true; 860467#factEXIT >#78#return; 860495#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862603#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862575#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862572#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862569#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859995#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860591#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860527#factFINAL assume true; 860506#factEXIT >#74#return; 860166#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 862021#$Ultimate##0 ~n := #in~n; 862439#L25 assume !(~n <= 0); 860540#L26 call #t~ret0 := fact(~n - 1);< 860572#$Ultimate##0 ~n := #in~n; 863197#L25 assume !(~n <= 0); 860578#L26 call #t~ret0 := fact(~n - 1);< 860589#$Ultimate##0 ~n := #in~n; 862542#L25 assume !(~n <= 0); 860997#L26 call #t~ret0 := fact(~n - 1);< 861003#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#76#return; 860442#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860986#$Ultimate##0 ~n := #in~n; 861595#L25 assume !(~n <= 0); 860608#L26 call #t~ret0 := fact(~n - 1);< 861027#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 861001#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860983#factFINAL assume true; 860971#factEXIT >#78#return; 860973#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862977#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862976#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862975#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862974#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860142#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861950#factFINAL assume true; 861943#factEXIT >#66#return; 861938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861915#factFINAL assume true; 860464#factEXIT >#74#return; 860325#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 862021#$Ultimate##0 ~n := #in~n; 862439#L25 assume !(~n <= 0); 860540#L26 call #t~ret0 := fact(~n - 1);< 860572#$Ultimate##0 ~n := #in~n; 863197#L25 assume !(~n <= 0); 860578#L26 call #t~ret0 := fact(~n - 1);< 860589#$Ultimate##0 ~n := #in~n; 862542#L25 assume !(~n <= 0); 860997#L26 call #t~ret0 := fact(~n - 1);< 861003#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#76#return; 860424#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860621#$Ultimate##0 ~n := #in~n; 861011#L25 assume !(~n <= 0); 860584#L26 call #t~ret0 := fact(~n - 1);< 860677#$Ultimate##0 ~n := #in~n; 863195#L25 assume !(~n <= 0); 860996#L26 call #t~ret0 := fact(~n - 1);< 861590#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860619#factFINAL assume true; 860616#factEXIT >#78#return; 860426#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862782#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862783#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862740#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862741#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 860059#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 860507#$Ultimate##0 ~n := #in~n; 861969#L25 assume !(~n <= 0); 860593#L26 call #t~ret0 := fact(~n - 1);< 860601#$Ultimate##0 ~n := #in~n; 861752#L25 assume !(~n <= 0); 860560#L26 call #t~ret0 := fact(~n - 1);< 861013#$Ultimate##0 ~n := #in~n; 861964#L25 assume !(~n <= 0); 860562#L26 call #t~ret0 := fact(~n - 1);< 861853#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860569#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860681#factFINAL assume true; 860592#factEXIT >#66#return; 860598#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861846#factFINAL assume true; 861824#factEXIT >#66#return; 861830#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861950#factFINAL assume true; 861943#factEXIT >#66#return; 861948#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862598#factFINAL assume true; 862595#factEXIT >#66#return; 862594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862593#factFINAL assume true; 862589#factEXIT >#66#return; 862590#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 862609#factFINAL assume true; 862607#factEXIT >#74#return; 860344#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 862021#$Ultimate##0 ~n := #in~n; 862439#L25 assume !(~n <= 0); 860540#L26 call #t~ret0 := fact(~n - 1);< 860572#$Ultimate##0 ~n := #in~n; 863197#L25 assume !(~n <= 0); 860578#L26 call #t~ret0 := fact(~n - 1);< 860589#$Ultimate##0 ~n := #in~n; 862542#L25 assume !(~n <= 0); 860997#L26 call #t~ret0 := fact(~n - 1);< 861003#$Ultimate##0 ~n := #in~n; 862522#L25 assume !(~n <= 0); 861589#L26 call #t~ret0 := fact(~n - 1);< 861591#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#76#return; 860026#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 860984#$Ultimate##0 ~n := #in~n; 860958#L25 assume !(~n <= 0); 860541#L26 call #t~ret0 := fact(~n - 1);< 860615#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861861#L25 assume !(~n <= 0); 860542#L26 call #t~ret0 := fact(~n - 1);< 861852#$Ultimate##0 ~n := #in~n; 861791#L25 assume ~n <= 0;#res := 1; 861789#factFINAL assume true; 861588#factEXIT >#66#return; 861587#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 861025#factFINAL assume true; 860995#factEXIT >#66#return; 860993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860627#factFINAL assume true; 860577#factEXIT >#66#return; 860576#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860573#factFINAL assume true; 860534#factEXIT >#66#return; 860532#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 860461#factFINAL assume true; 860312#factEXIT >#78#return; 860196#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 862784#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 862779#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 862780#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 862724#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 859436#L30-5 [2023-02-17 09:43:56,060 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:56,061 INFO L85 PathProgramCache]: Analyzing trace with hash -905932409, now seen corresponding path program 55 times [2023-02-17 09:43:56,061 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:56,061 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2143429802] [2023-02-17 09:43:56,061 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:56,061 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:56,100 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:56,100 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [9328456] [2023-02-17 09:43:56,100 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:43:56,100 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:56,100 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:56,117 INFO L229 MonitoredProcess]: Starting monitored process 259 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:56,134 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (259)] Waiting until timeout for monitored process [2023-02-17 09:43:57,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:43:57,752 INFO L263 TraceCheckSpWp]: Trace formula consists of 4054 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:43:57,764 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:57,864 INFO L134 CoverageAnalysis]: Checked inductivity of 223780 backedges. 98210 proven. 332 refuted. 0 times theorem prover too weak. 125238 trivial. 0 not checked. [2023-02-17 09:43:57,864 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:57,990 INFO L134 CoverageAnalysis]: Checked inductivity of 223780 backedges. 1334 proven. 332 refuted. 0 times theorem prover too weak. 222114 trivial. 0 not checked. [2023-02-17 09:43:57,990 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:57,990 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2143429802] [2023-02-17 09:43:57,990 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:57,990 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [9328456] [2023-02-17 09:43:57,990 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [9328456] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:57,990 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:57,991 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:43:57,991 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [178523663] [2023-02-17 09:43:57,991 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:57,992 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:43:57,992 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:43:57,992 INFO L85 PathProgramCache]: Analyzing trace with hash 1780461924, now seen corresponding path program 49 times [2023-02-17 09:43:57,993 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:43:57,993 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1967755446] [2023-02-17 09:43:57,993 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:43:57,993 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:43:58,022 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:43:58,022 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1451740761] [2023-02-17 09:43:58,022 INFO L93 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2023-02-17 09:43:58,022 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:43:58,022 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:43:58,024 INFO L229 MonitoredProcess]: Starting monitored process 260 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:43:58,025 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (260)] Waiting until timeout for monitored process [2023-02-17 09:43:59,272 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2023-02-17 09:43:59,280 INFO L263 TraceCheckSpWp]: Trace formula consists of 2198 conjuncts, 39 conjunts are in the unsatisfiable core [2023-02-17 09:43:59,286 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:43:59,389 INFO L134 CoverageAnalysis]: Checked inductivity of 77165 backedges. 18492 proven. 813 refuted. 0 times theorem prover too weak. 57860 trivial. 0 not checked. [2023-02-17 09:43:59,389 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:43:59,841 INFO L134 CoverageAnalysis]: Checked inductivity of 77165 backedges. 168 proven. 12945 refuted. 0 times theorem prover too weak. 64052 trivial. 0 not checked. [2023-02-17 09:43:59,841 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:43:59,841 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1967755446] [2023-02-17 09:43:59,841 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:43:59,842 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1451740761] [2023-02-17 09:43:59,842 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1451740761] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:43:59,842 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:43:59,842 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 32] total 35 [2023-02-17 09:43:59,842 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1790363339] [2023-02-17 09:43:59,842 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:43:59,843 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:43:59,843 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:43:59,843 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2023-02-17 09:43:59,843 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=189, Invalid=1001, Unknown=0, NotChecked=0, Total=1190 [2023-02-17 09:43:59,843 INFO L87 Difference]: Start difference. First operand 4325 states and 9643 transitions. cyclomatic complexity: 5356 Second operand has 35 states, 32 states have (on average 2.5625) internal successors, (82), 32 states have internal predecessors, (82), 20 states have call successors, (33), 2 states have call predecessors, (33), 16 states have return successors, (44), 18 states have call predecessors, (44), 20 states have call successors, (44) [2023-02-17 09:44:01,162 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:44:01,162 INFO L93 Difference]: Finished difference Result 5719 states and 11901 transitions. [2023-02-17 09:44:01,162 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5719 states and 11901 transitions. [2023-02-17 09:44:01,201 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 2042 [2023-02-17 09:44:01,251 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5719 states to 5688 states and 11837 transitions. [2023-02-17 09:44:01,251 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 690 [2023-02-17 09:44:01,251 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 690 [2023-02-17 09:44:01,252 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5688 states and 11837 transitions. [2023-02-17 09:44:01,252 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:44:01,252 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5688 states and 11837 transitions. [2023-02-17 09:44:01,254 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5688 states and 11837 transitions. [2023-02-17 09:44:01,332 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5688 to 4402. [2023-02-17 09:44:01,336 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4402 states, 2361 states have (on average 1.0423549343498517) internal successors, (2461), 2335 states have internal predecessors, (2461), 1784 states have call successors, (1806), 331 states have call predecessors, (1806), 257 states have return successors, (5620), 1735 states have call predecessors, (5620), 1784 states have call successors, (5620) [2023-02-17 09:44:01,356 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4402 states to 4402 states and 9887 transitions. [2023-02-17 09:44:01,356 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4402 states and 9887 transitions. [2023-02-17 09:44:01,357 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 30 states. [2023-02-17 09:44:01,357 INFO L428 stractBuchiCegarLoop]: Abstraction has 4402 states and 9887 transitions. [2023-02-17 09:44:01,357 INFO L335 stractBuchiCegarLoop]: ======== Iteration 79 ============ [2023-02-17 09:44:01,357 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4402 states and 9887 transitions. [2023-02-17 09:44:01,372 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 1415 [2023-02-17 09:44:01,372 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:44:01,372 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:44:01,378 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [297, 297, 210, 210, 210, 210, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:44:01,378 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [161, 161, 131, 131, 131, 131, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:44:01,379 INFO L748 eck$LassoCheckResult]: Stem: 887100#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 887042#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 887043#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 887062#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 887101#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 887816#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 887814#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887810#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887811#$Ultimate##0 ~n := #in~n; 887815#L25 assume ~n <= 0;#res := 1; 887813#factFINAL assume true; 887809#factEXIT >#68#return; 887805#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887806#$Ultimate##0 ~n := #in~n; 887812#L25 assume ~n <= 0;#res := 1; 887808#factFINAL assume true; 887804#factEXIT >#70#return; 887801#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887802#$Ultimate##0 ~n := #in~n; 887807#L25 assume ~n <= 0;#res := 1; 887803#factFINAL assume true; 887800#factEXIT >#72#return; 887799#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887798#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 887797#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 887795#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 887793#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887776#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887777#$Ultimate##0 ~n := #in~n; 887788#L25 assume !(~n <= 0); 887779#L26 call #t~ret0 := fact(~n - 1);< 887782#$Ultimate##0 ~n := #in~n; 887790#L25 assume ~n <= 0;#res := 1; 887786#factFINAL assume true; 887778#factEXIT >#66#return; 887781#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887792#factFINAL assume true; 887775#factEXIT >#74#return; 887770#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887771#$Ultimate##0 ~n := #in~n; 887785#L25 assume ~n <= 0;#res := 1; 887783#factFINAL assume true; 887769#factEXIT >#76#return; 887764#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887765#$Ultimate##0 ~n := #in~n; 887784#L25 assume !(~n <= 0); 887780#L26 call #t~ret0 := fact(~n - 1);< 887782#$Ultimate##0 ~n := #in~n; 887790#L25 assume ~n <= 0;#res := 1; 887786#factFINAL assume true; 887778#factEXIT >#66#return; 887768#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887767#factFINAL assume true; 887763#factEXIT >#78#return; 887762#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887761#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 887759#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 887756#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 887751#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887712#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887714#$Ultimate##0 ~n := #in~n; 887746#L25 assume !(~n <= 0); 887726#L26 call #t~ret0 := fact(~n - 1);< 887727#$Ultimate##0 ~n := #in~n; 887752#L25 assume !(~n <= 0); 887725#L26 call #t~ret0 := fact(~n - 1);< 887748#$Ultimate##0 ~n := #in~n; 887760#L25 assume ~n <= 0;#res := 1; 887757#factFINAL assume true; 887753#factEXIT >#66#return; 887750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887747#factFINAL assume true; 887741#factEXIT >#66#return; 887743#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887789#factFINAL assume true; 887787#factEXIT >#74#return; 887773#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887774#$Ultimate##0 ~n := #in~n; 887794#L25 assume ~n <= 0;#res := 1; 887791#factFINAL assume true; 887772#factEXIT >#76#return; 887735#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887736#$Ultimate##0 ~n := #in~n; 887749#L25 assume !(~n <= 0); 887742#L26 call #t~ret0 := fact(~n - 1);< 887745#$Ultimate##0 ~n := #in~n; 887758#L25 assume !(~n <= 0); 887754#L26 call #t~ret0 := fact(~n - 1);< 887755#$Ultimate##0 ~n := #in~n; 887760#L25 assume ~n <= 0;#res := 1; 887757#factFINAL assume true; 887753#factEXIT >#66#return; 887750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887747#factFINAL assume true; 887741#factEXIT >#66#return; 887738#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887737#factFINAL assume true; 887734#factEXIT >#78#return; 887732#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887730#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 887728#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 887721#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 887718#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887713#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887714#$Ultimate##0 ~n := #in~n; 887746#L25 assume !(~n <= 0); 887726#L26 call #t~ret0 := fact(~n - 1);< 887727#$Ultimate##0 ~n := #in~n; 887752#L25 assume !(~n <= 0); 887725#L26 call #t~ret0 := fact(~n - 1);< 887748#$Ultimate##0 ~n := #in~n; 887752#L25 assume !(~n <= 0); 887725#L26 call #t~ret0 := fact(~n - 1);< 887748#$Ultimate##0 ~n := #in~n; 887760#L25 assume ~n <= 0;#res := 1; 887757#factFINAL assume true; 887753#factEXIT >#66#return; 887750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887747#factFINAL assume true; 887741#factEXIT >#66#return; 887744#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887740#factFINAL assume true; 887724#factEXIT >#66#return; 887720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887717#factFINAL assume true; 887711#factEXIT >#74#return; 887706#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887707#$Ultimate##0 ~n := #in~n; 887716#L25 assume ~n <= 0;#res := 1; 887710#factFINAL assume true; 887705#factEXIT >#76#return; 887679#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887680#$Ultimate##0 ~n := #in~n; 887700#L25 assume !(~n <= 0); 887688#L26 call #t~ret0 := fact(~n - 1);< 887695#$Ultimate##0 ~n := #in~n; 887739#L25 assume !(~n <= 0); 887689#L26 call #t~ret0 := fact(~n - 1);< 887693#$Ultimate##0 ~n := #in~n; 887733#L25 assume !(~n <= 0); 887691#L26 call #t~ret0 := fact(~n - 1);< 887723#$Ultimate##0 ~n := #in~n; 887731#L25 assume ~n <= 0;#res := 1; 887729#factFINAL assume true; 887722#factEXIT >#66#return; 887719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887715#factFINAL assume true; 887708#factEXIT >#66#return; 887704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887702#factFINAL assume true; 887701#factEXIT >#66#return; 887692#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887820#factFINAL assume true; 887678#factEXIT >#78#return; 887677#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887676#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 887674#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 887671#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 887669#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887666#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887667#$Ultimate##0 ~n := #in~n; 887696#L25 assume !(~n <= 0); 887690#L26 call #t~ret0 := fact(~n - 1);< 887693#$Ultimate##0 ~n := #in~n; 887733#L25 assume !(~n <= 0); 887691#L26 call #t~ret0 := fact(~n - 1);< 887723#$Ultimate##0 ~n := #in~n; 887733#L25 assume !(~n <= 0); 887691#L26 call #t~ret0 := fact(~n - 1);< 887723#$Ultimate##0 ~n := #in~n; 887733#L25 assume !(~n <= 0); 887691#L26 call #t~ret0 := fact(~n - 1);< 887723#$Ultimate##0 ~n := #in~n; 887731#L25 assume ~n <= 0;#res := 1; 887729#factFINAL assume true; 887722#factEXIT >#66#return; 887719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887715#factFINAL assume true; 887708#factEXIT >#66#return; 887704#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887702#factFINAL assume true; 887701#factEXIT >#66#return; 887698#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887694#factFINAL assume true; 887687#factEXIT >#66#return; 887685#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887681#factFINAL assume true; 887665#factEXIT >#74#return; 887661#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887662#$Ultimate##0 ~n := #in~n; 887683#L25 assume ~n <= 0;#res := 1; 887664#factFINAL assume true; 887660#factEXIT >#76#return; 887392#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887657#$Ultimate##0 ~n := #in~n; 887654#L25 assume !(~n <= 0); 887635#L26 call #t~ret0 := fact(~n - 1);< 887652#$Ultimate##0 ~n := #in~n; 887682#L25 assume !(~n <= 0); 887636#L26 call #t~ret0 := fact(~n - 1);< 887656#$Ultimate##0 ~n := #in~n; 887675#L25 assume !(~n <= 0); 887633#L26 call #t~ret0 := fact(~n - 1);< 887673#$Ultimate##0 ~n := #in~n; 887675#L25 assume !(~n <= 0); 887633#L26 call #t~ret0 := fact(~n - 1);< 887673#$Ultimate##0 ~n := #in~n; 887686#L25 assume ~n <= 0;#res := 1; 887684#factFINAL assume true; 887672#factEXIT >#66#return; 887670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887668#factFINAL assume true; 887663#factEXIT >#66#return; 887659#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887658#factFINAL assume true; 887655#factEXIT >#66#return; 887653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887651#factFINAL assume true; 887648#factEXIT >#66#return; 887649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887886#factFINAL assume true; 887391#factEXIT >#78#return; 887393#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887850#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 887848#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 887847#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 887249#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887222#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887223#$Ultimate##0 ~n := #in~n; 887355#L25 assume !(~n <= 0); 887246#L26 call #t~ret0 := fact(~n - 1);< 887247#$Ultimate##0 ~n := #in~n; 887359#L25 assume !(~n <= 0); 887255#L26 call #t~ret0 := fact(~n - 1);< 887256#$Ultimate##0 ~n := #in~n; 887306#L25 assume !(~n <= 0); 887301#L26 call #t~ret0 := fact(~n - 1);< 887303#$Ultimate##0 ~n := #in~n; 887314#L25 assume !(~n <= 0); 887302#L26 call #t~ret0 := fact(~n - 1);< 887311#$Ultimate##0 ~n := #in~n; 887314#L25 assume !(~n <= 0); 887302#L26 call #t~ret0 := fact(~n - 1);< 887311#$Ultimate##0 ~n := #in~n; 887320#L25 assume ~n <= 0;#res := 1; 887319#factFINAL assume true; 887318#factEXIT >#66#return; 887316#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887313#factFINAL assume true; 887310#factEXIT >#66#return; 887308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887305#factFINAL assume true; 887300#factEXIT >#66#return; 887298#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887296#factFINAL assume true; 887254#factEXIT >#66#return; 887252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887248#factFINAL assume true; 887245#factEXIT >#66#return; 887244#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887242#factFINAL assume true; 887221#factEXIT >#74#return; 887219#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887220#$Ultimate##0 ~n := #in~n; 887243#L25 assume ~n <= 0;#res := 1; 887241#factFINAL assume true; 887218#factEXIT >#76#return; 887039#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887217#$Ultimate##0 ~n := #in~n; 887215#L25 assume !(~n <= 0); 887167#L26 call #t~ret0 := fact(~n - 1);< 887212#$Ultimate##0 ~n := #in~n; 887323#L25 assume !(~n <= 0); 887179#L26 call #t~ret0 := fact(~n - 1);< 887239#$Ultimate##0 ~n := #in~n; 887363#L25 assume !(~n <= 0); 887177#L26 call #t~ret0 := fact(~n - 1);< 887259#$Ultimate##0 ~n := #in~n; 887350#L25 assume !(~n <= 0); 887178#L26 call #t~ret0 := fact(~n - 1);< 887207#$Ultimate##0 ~n := #in~n; 887345#L25 assume !(~n <= 0); 887175#L26 call #t~ret0 := fact(~n - 1);< 887344#$Ultimate##0 ~n := #in~n; 887347#L25 assume ~n <= 0;#res := 1; 887346#factFINAL assume true; 887343#factEXIT >#66#return; 887341#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887336#factFINAL assume true; 887329#factEXIT >#66#return; 887327#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887325#factFINAL assume true; 887258#factEXIT >#66#return; 887253#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887251#factFINAL assume true; 887238#factEXIT >#66#return; 887214#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887213#factFINAL assume true; 887211#factEXIT >#66#return; 887069#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887038#factFINAL assume true; 887040#factEXIT >#78#return; 887044#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887045#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 887063#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890259#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 890255#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 890253#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 890252#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889908#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889743#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889834#$Ultimate##0 ~n := #in~n; 890013#L25 assume !(~n <= 0); 889797#L26 call #t~ret0 := fact(~n - 1);< 890012#$Ultimate##0 ~n := #in~n; 890022#L25 assume ~n <= 0;#res := 1; 890015#factFINAL assume true; 890011#factEXIT >#66#return; 890010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890009#factFINAL assume true; 889987#factEXIT >#68#return; 889726#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889760#$Ultimate##0 ~n := #in~n; 889789#L25 assume ~n <= 0;#res := 1; 889778#factFINAL assume true; 889725#factEXIT >#70#return; 889745#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889935#$Ultimate##0 ~n := #in~n; 889998#L25 assume !(~n <= 0); 889774#L26 call #t~ret0 := fact(~n - 1);< 889940#$Ultimate##0 ~n := #in~n; 889942#L25 assume ~n <= 0;#res := 1; 889941#factFINAL assume true; 889939#factEXIT >#66#return; 889938#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889937#factFINAL assume true; 889934#factEXIT >#72#return; 889932#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889930#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 889891#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889890#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889889#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889764#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889783#$Ultimate##0 ~n := #in~n; 889816#L25 assume !(~n <= 0); 888537#L26 call #t~ret0 := fact(~n - 1);< 888597#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889782#factFINAL assume true; 889763#factEXIT >#68#return; 888839#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889819#$Ultimate##0 ~n := #in~n; 890410#L25 assume !(~n <= 0); 888587#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889782#factFINAL assume true; 889763#factEXIT >#70#return; 889541#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889696#$Ultimate##0 ~n := #in~n; 889700#L25 assume ~n <= 0;#res := 1; 889039#factFINAL assume true; 889523#factEXIT >#72#return; 889626#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891175#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 891174#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891173#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 891172#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888202#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889000#$Ultimate##0 ~n := #in~n; 888908#L25 assume !(~n <= 0); 888497#L26 call #t~ret0 := fact(~n - 1);< 888592#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#74#return; 888383#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 888417#$Ultimate##0 ~n := #in~n; 889021#L25 assume !(~n <= 0); 888586#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#76#return; 888385#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 888417#$Ultimate##0 ~n := #in~n; 889021#L25 assume !(~n <= 0); 888586#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#78#return; 888401#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890065#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 890064#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890062#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890047#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888190#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889028#$Ultimate##0 ~n := #in~n; 889026#L25 assume !(~n <= 0); 888473#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#74#return; 888371#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 888417#$Ultimate##0 ~n := #in~n; 889021#L25 assume !(~n <= 0); 888586#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#76#return; 888398#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889112#$Ultimate##0 ~n := #in~n; 890050#L25 assume !(~n <= 0); 887084#L26 call #t~ret0 := fact(~n - 1);< 887093#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#78#return; 889099#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889100#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 889034#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889035#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889029#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888216#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889028#$Ultimate##0 ~n := #in~n; 889026#L25 assume !(~n <= 0); 888473#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#74#return; 888350#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 888417#$Ultimate##0 ~n := #in~n; 889021#L25 assume !(~n <= 0); 888586#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#76#return; 888215#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#78#return; 889507#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889012#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 888909#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 888593#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 888515#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888449#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888512#factFINAL assume true; 888419#factEXIT >#74#return; 888374#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 888417#$Ultimate##0 ~n := #in~n; 889021#L25 assume !(~n <= 0); 888586#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#76#return; 888218#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#78#return; 888001#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 887998#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 887994#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 887992#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 887990#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887001#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887002#$Ultimate##0 ~n := #in~n; 889888#L25 assume !(~n <= 0); 887977#L26 call #t~ret0 := fact(~n - 1);< 888899#$Ultimate##0 ~n := #in~n; 890254#L25 assume !(~n <= 0); 887976#L26 call #t~ret0 := fact(~n - 1);< 889004#$Ultimate##0 ~n := #in~n; 890247#L25 assume !(~n <= 0); 887971#L26 call #t~ret0 := fact(~n - 1);< 889997#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890007#factFINAL assume true; 890000#factEXIT >#66#return; 889999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889996#factFINAL assume true; 889976#factEXIT >#66#return; 889980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889013#factFINAL assume true; 889002#factEXIT >#66#return; 888917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888898#factFINAL assume true; 888595#factEXIT >#66#return; 887952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887950#factFINAL assume true; 887109#factEXIT >#74#return; 887140#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887095#$Ultimate##0 ~n := #in~n; 890113#L25 assume !(~n <= 0); 890111#L26 call #t~ret0 := fact(~n - 1);< 890112#$Ultimate##0 ~n := #in~n; 890132#L25 assume ~n <= 0;#res := 1; 890127#factFINAL assume true; 890110#factEXIT >#66#return; 890108#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890103#factFINAL assume true; 890092#factEXIT >#76#return; 887113#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 890046#$Ultimate##0 ~n := #in~n; 890044#L25 assume !(~n <= 0); 887972#L26 call #t~ret0 := fact(~n - 1);< 890043#$Ultimate##0 ~n := #in~n; 890042#L25 assume !(~n <= 0); 887974#L26 call #t~ret0 := fact(~n - 1);< 889997#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890007#factFINAL assume true; 890000#factEXIT >#66#return; 889999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889996#factFINAL assume true; 889976#factEXIT >#66#return; 889980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889013#factFINAL assume true; 889002#factEXIT >#66#return; 888917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888898#factFINAL assume true; 888595#factEXIT >#66#return; 887952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887950#factFINAL assume true; 887109#factEXIT >#78#return; 887138#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890154#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 890153#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889818#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 889817#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 889815#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 889814#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889800#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889780#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889781#$Ultimate##0 ~n := #in~n; 889801#L25 assume !(~n <= 0); 889795#L26 call #t~ret0 := fact(~n - 1);< 889799#$Ultimate##0 ~n := #in~n; 889806#L25 assume !(~n <= 0); 889794#L26 call #t~ret0 := fact(~n - 1);< 889812#$Ultimate##0 ~n := #in~n; 889944#L25 assume ~n <= 0;#res := 1; 889898#factFINAL assume true; 889811#factEXIT >#66#return; 889807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889802#factFINAL assume true; 889792#factEXIT >#66#return; 889791#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889790#factFINAL assume true; 889779#factEXIT >#68#return; 889740#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889760#$Ultimate##0 ~n := #in~n; 889789#L25 assume ~n <= 0;#res := 1; 889778#factFINAL assume true; 889725#factEXIT >#70#return; 889718#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889719#$Ultimate##0 ~n := #in~n; 889788#L25 assume !(~n <= 0); 889768#L26 call #t~ret0 := fact(~n - 1);< 889777#$Ultimate##0 ~n := #in~n; 889900#L25 assume !(~n <= 0); 889894#L26 call #t~ret0 := fact(~n - 1);< 889896#$Ultimate##0 ~n := #in~n; 889925#L25 assume ~n <= 0;#res := 1; 889923#factFINAL assume true; 889893#factEXIT >#66#return; 889892#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889784#factFINAL assume true; 889767#factEXIT >#66#return; 889766#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889724#factFINAL assume true; 889717#factEXIT >#72#return; 889715#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889713#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 889711#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889709#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889707#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889699#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889703#$Ultimate##0 ~n := #in~n; 889705#L25 assume !(~n <= 0); 888541#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889702#factFINAL assume true; 889697#factEXIT >#68#return; 889247#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889468#$Ultimate##0 ~n := #in~n; 889243#L25 assume !(~n <= 0); 888477#L26 call #t~ret0 := fact(~n - 1);< 888590#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888589#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889782#factFINAL assume true; 889763#factEXIT >#70#return; 889524#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889695#$Ultimate##0 ~n := #in~n; 889833#L25 assume !(~n <= 0); 888585#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889761#factFINAL assume true; 889720#factEXIT >#72#return; 889716#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889714#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 889712#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889710#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889708#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889698#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889703#$Ultimate##0 ~n := #in~n; 889705#L25 assume !(~n <= 0); 888541#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889702#factFINAL assume true; 889697#factEXIT >#68#return; 889262#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889468#$Ultimate##0 ~n := #in~n; 889243#L25 assume !(~n <= 0); 888477#L26 call #t~ret0 := fact(~n - 1);< 888590#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889702#factFINAL assume true; 889697#factEXIT >#70#return; 889527#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889695#$Ultimate##0 ~n := #in~n; 889833#L25 assume ~n <= 0;#res := 1; 889039#factFINAL assume true; 889523#factEXIT >#72#return; 889522#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889521#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 889520#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889519#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889518#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888025#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889028#$Ultimate##0 ~n := #in~n; 889026#L25 assume !(~n <= 0); 888473#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#74#return; 888074#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889015#$Ultimate##0 ~n := #in~n; 889014#L25 assume !(~n <= 0); 888504#L26 call #t~ret0 := fact(~n - 1);< 888907#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#76#return; 888375#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 888511#$Ultimate##0 ~n := #in~n; 889041#L25 assume !(~n <= 0); 887085#L26 call #t~ret0 := fact(~n - 1);< 888919#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#78#return; 888405#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889036#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 889037#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889031#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889032#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888055#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889028#$Ultimate##0 ~n := #in~n; 889026#L25 assume !(~n <= 0); 888473#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#74#return; 888095#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889015#$Ultimate##0 ~n := #in~n; 889014#L25 assume !(~n <= 0); 888504#L26 call #t~ret0 := fact(~n - 1);< 888907#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#76#return; 888376#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 888511#$Ultimate##0 ~n := #in~n; 889041#L25 assume !(~n <= 0); 887085#L26 call #t~ret0 := fact(~n - 1);< 888919#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#78#return; 889104#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889517#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 889516#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889515#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889514#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888422#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888512#factFINAL assume true; 888419#factEXIT >#74#return; 888083#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889015#$Ultimate##0 ~n := #in~n; 889014#L25 assume !(~n <= 0); 888504#L26 call #t~ret0 := fact(~n - 1);< 888907#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#76#return; 888081#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#78#return; 888326#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 889491#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 889483#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 889475#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889473#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888426#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888512#factFINAL assume true; 888419#factEXIT >#74#return; 888110#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889015#$Ultimate##0 ~n := #in~n; 889014#L25 assume !(~n <= 0); 888504#L26 call #t~ret0 := fact(~n - 1);< 888907#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#76#return; 888123#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#78#return; 888335#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891092#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 891088#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891073#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 889901#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887128#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887002#$Ultimate##0 ~n := #in~n; 889888#L25 assume !(~n <= 0); 887977#L26 call #t~ret0 := fact(~n - 1);< 888899#$Ultimate##0 ~n := #in~n; 890254#L25 assume !(~n <= 0); 887976#L26 call #t~ret0 := fact(~n - 1);< 889004#$Ultimate##0 ~n := #in~n; 890247#L25 assume !(~n <= 0); 887971#L26 call #t~ret0 := fact(~n - 1);< 889997#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890007#factFINAL assume true; 890000#factEXIT >#66#return; 889999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889996#factFINAL assume true; 889976#factEXIT >#66#return; 889980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889013#factFINAL assume true; 889002#factEXIT >#66#return; 888917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888898#factFINAL assume true; 888595#factEXIT >#66#return; 888594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888516#factFINAL assume true; 888467#factEXIT >#66#return; 888468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890097#factFINAL assume true; 890095#factEXIT >#74#return; 889964#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 890027#$Ultimate##0 ~n := #in~n; 890025#L25 assume !(~n <= 0); 889977#L26 call #t~ret0 := fact(~n - 1);< 890024#$Ultimate##0 ~n := #in~n; 890037#L25 assume !(~n <= 0); 890001#L26 call #t~ret0 := fact(~n - 1);< 890030#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890257#factFINAL assume true; 890248#factEXIT >#76#return; 887119#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 887951#$Ultimate##0 ~n := #in~n; 889984#L25 assume !(~n <= 0); 887979#L26 call #t~ret0 := fact(~n - 1);< 889982#$Ultimate##0 ~n := #in~n; 890066#L25 assume !(~n <= 0); 887984#L26 call #t~ret0 := fact(~n - 1);< 890006#$Ultimate##0 ~n := #in~n; 890042#L25 assume !(~n <= 0); 887974#L26 call #t~ret0 := fact(~n - 1);< 889997#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890007#factFINAL assume true; 890000#factEXIT >#66#return; 889999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889996#factFINAL assume true; 889976#factEXIT >#66#return; 889980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889013#factFINAL assume true; 889002#factEXIT >#66#return; 888917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888898#factFINAL assume true; 888595#factEXIT >#66#return; 887952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887950#factFINAL assume true; 887109#factEXIT >#78#return; 887142#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890246#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 890244#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890241#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 890234#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 890227#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 890221#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890096#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 890055#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 890063#$Ultimate##0 ~n := #in~n; 890059#L25 assume !(~n <= 0); 889796#L26 call #t~ret0 := fact(~n - 1);< 889799#$Ultimate##0 ~n := #in~n; 889806#L25 assume !(~n <= 0); 889794#L26 call #t~ret0 := fact(~n - 1);< 889812#$Ultimate##0 ~n := #in~n; 889806#L25 assume !(~n <= 0); 889794#L26 call #t~ret0 := fact(~n - 1);< 889812#$Ultimate##0 ~n := #in~n; 889806#L25 assume !(~n <= 0); 889794#L26 call #t~ret0 := fact(~n - 1);< 889812#$Ultimate##0 ~n := #in~n; 889944#L25 assume ~n <= 0;#res := 1; 889898#factFINAL assume true; 889811#factEXIT >#66#return; 889807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889802#factFINAL assume true; 889792#factEXIT >#66#return; 889798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890137#factFINAL assume true; 890133#factEXIT >#66#return; 890128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890118#factFINAL assume true; 890116#factEXIT >#66#return; 890117#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890192#factFINAL assume true; 890191#factEXIT >#68#return; 889727#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889760#$Ultimate##0 ~n := #in~n; 889789#L25 assume ~n <= 0;#res := 1; 889778#factFINAL assume true; 889725#factEXIT >#70#return; 889746#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889986#$Ultimate##0 ~n := #in~n; 890574#L25 assume !(~n <= 0); 890541#L26 call #t~ret0 := fact(~n - 1);< 890564#$Ultimate##0 ~n := #in~n; 890575#L25 assume !(~n <= 0); 890558#L26 call #t~ret0 := fact(~n - 1);< 890572#$Ultimate##0 ~n := #in~n; 890590#L25 assume !(~n <= 0); 890570#L26 call #t~ret0 := fact(~n - 1);< 890586#$Ultimate##0 ~n := #in~n; 890659#L25 assume ~n <= 0;#res := 1; 890658#factFINAL assume true; 890596#factEXIT >#66#return; 890594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890592#factFINAL assume true; 890584#factEXIT >#66#return; 890582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890581#factFINAL assume true; 890568#factEXIT >#66#return; 890559#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890583#factFINAL assume true; 890580#factEXIT >#72#return; 890429#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890760#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890759#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890758#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890753#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887015#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 890412#$Ultimate##0 ~n := #in~n; 890443#L25 assume !(~n <= 0); 890434#L26 call #t~ret0 := fact(~n - 1);< 890442#$Ultimate##0 ~n := #in~n; 890549#L25 assume !(~n <= 0); 890439#L26 call #t~ret0 := fact(~n - 1);< 890489#$Ultimate##0 ~n := #in~n; 890513#L25 assume !(~n <= 0); 890436#L26 call #t~ret0 := fact(~n - 1);< 890510#$Ultimate##0 ~n := #in~n; 890513#L25 assume !(~n <= 0); 890436#L26 call #t~ret0 := fact(~n - 1);< 890510#$Ultimate##0 ~n := #in~n; 890515#L25 assume ~n <= 0;#res := 1; 890514#factFINAL assume true; 890508#factEXIT >#66#return; 890507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890506#factFINAL assume true; 890487#factEXIT >#66#return; 890485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890481#factFINAL assume true; 890462#factEXIT >#66#return; 890460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890459#factFINAL assume true; 890456#factEXIT >#66#return; 890457#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890751#factFINAL assume true; 890750#factEXIT >#68#return; 890409#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887088#$Ultimate##0 ~n := #in~n; 890499#L25 assume ~n <= 0;#res := 1; 890498#factFINAL assume true; 890386#factEXIT >#70#return; 888603#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889217#$Ultimate##0 ~n := #in~n; 889218#L25 assume !(~n <= 0); 888494#L26 call #t~ret0 := fact(~n - 1);< 888607#$Ultimate##0 ~n := #in~n; 889097#L25 assume !(~n <= 0); 888495#L26 call #t~ret0 := fact(~n - 1);< 888907#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890757#factFINAL assume true; 890747#factEXIT >#72#return; 890345#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890746#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890744#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890742#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890739#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889198#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889242#$Ultimate##0 ~n := #in~n; 889117#L25 assume !(~n <= 0); 888479#L26 call #t~ret0 := fact(~n - 1);< 889469#$Ultimate##0 ~n := #in~n; 889462#L25 assume !(~n <= 0); 888483#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890694#factFINAL assume true; 890268#factEXIT >#68#return; 889398#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889468#$Ultimate##0 ~n := #in~n; 889243#L25 assume !(~n <= 0); 888477#L26 call #t~ret0 := fact(~n - 1);< 888590#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889702#factFINAL assume true; 889697#factEXIT >#70#return; 888980#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889098#$Ultimate##0 ~n := #in~n; 889096#L25 assume ~n <= 0;#res := 1; 889039#factFINAL assume true; 889523#factEXIT >#72#return; 889664#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890738#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890737#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890735#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890733#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889144#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889242#$Ultimate##0 ~n := #in~n; 889117#L25 assume !(~n <= 0); 888479#L26 call #t~ret0 := fact(~n - 1);< 889469#$Ultimate##0 ~n := #in~n; 889462#L25 assume !(~n <= 0); 888483#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890694#factFINAL assume true; 890268#factEXIT >#68#return; 889263#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889468#$Ultimate##0 ~n := #in~n; 889243#L25 assume !(~n <= 0); 888477#L26 call #t~ret0 := fact(~n - 1);< 888590#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888545#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890069#factFINAL assume true; 890067#factEXIT >#70#return; 889581#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889695#$Ultimate##0 ~n := #in~n; 889833#L25 assume ~n <= 0;#res := 1; 889039#factFINAL assume true; 889523#factEXIT >#72#return; 889670#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890916#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890917#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890912#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890913#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888242#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888366#$Ultimate##0 ~n := #in~n; 889470#L25 assume !(~n <= 0); 888487#L26 call #t~ret0 := fact(~n - 1);< 889469#$Ultimate##0 ~n := #in~n; 889462#L25 assume !(~n <= 0); 888483#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#74#return; 888268#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#76#return; 888395#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 888417#$Ultimate##0 ~n := #in~n; 889021#L25 assume !(~n <= 0); 888586#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#78#return; 888415#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890955#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 890951#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890952#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890948#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888425#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888512#factFINAL assume true; 888419#factEXIT >#74#return; 888129#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#76#return; 888197#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889019#$Ultimate##0 ~n := #in~n; 889016#L25 assume !(~n <= 0); 888472#L26 call #t~ret0 := fact(~n - 1);< 888590#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#78#return; 889108#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890947#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 890943#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890944#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890940#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888448#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888520#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888512#factFINAL assume true; 888419#factEXIT >#74#return; 888241#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#76#return; 888272#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889019#$Ultimate##0 ~n := #in~n; 889016#L25 assume !(~n <= 0); 888472#L26 call #t~ret0 := fact(~n - 1);< 888590#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#78#return; 888323#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890939#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 890935#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890936#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890931#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888461#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889484#factFINAL assume true; 889476#factEXIT >#66#return; 889479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889920#factFINAL assume true; 889913#factEXIT >#66#return; 889916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889988#factFINAL assume true; 889947#factEXIT >#66#return; 889952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890194#factFINAL assume true; 890379#factEXIT >#66#return; 890378#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890377#factFINAL assume true; 889922#factEXIT >#74#return; 888045#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887097#$Ultimate##0 ~n := #in~n; 889020#L25 assume !(~n <= 0); 888492#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#76#return; 888089#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889000#$Ultimate##0 ~n := #in~n; 888908#L25 assume !(~n <= 0); 888497#L26 call #t~ret0 := fact(~n - 1);< 888592#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#78#return; 888328#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891003#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 891002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891001#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890238#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887115#L30-5 [2023-02-17 09:44:01,379 INFO L750 eck$LassoCheckResult]: Loop: 887115#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887002#$Ultimate##0 ~n := #in~n; 889888#L25 assume !(~n <= 0); 887977#L26 call #t~ret0 := fact(~n - 1);< 888899#$Ultimate##0 ~n := #in~n; 890254#L25 assume !(~n <= 0); 887976#L26 call #t~ret0 := fact(~n - 1);< 889004#$Ultimate##0 ~n := #in~n; 890247#L25 assume !(~n <= 0); 887971#L26 call #t~ret0 := fact(~n - 1);< 889997#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890007#factFINAL assume true; 890000#factEXIT >#66#return; 889999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889996#factFINAL assume true; 889976#factEXIT >#66#return; 889980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889013#factFINAL assume true; 889002#factEXIT >#66#return; 888917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888898#factFINAL assume true; 888595#factEXIT >#66#return; 888594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888516#factFINAL assume true; 888467#factEXIT >#66#return; 888418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888363#factFINAL assume true; 888002#factEXIT >#66#return; 888000#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887996#factFINAL assume true; 887969#factEXIT >#66#return; 887986#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887999#factFINAL assume true; 887995#factEXIT >#66#return; 887993#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 887965#factFINAL assume true; 887966#factEXIT >#74#return; 887958#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889966#$Ultimate##0 ~n := #in~n; 890052#L25 assume !(~n <= 0); 889979#L26 call #t~ret0 := fact(~n - 1);< 889981#$Ultimate##0 ~n := #in~n; 890058#L25 assume !(~n <= 0); 890003#L26 call #t~ret0 := fact(~n - 1);< 890005#$Ultimate##0 ~n := #in~n; 890034#L25 assume !(~n <= 0); 890017#L26 call #t~ret0 := fact(~n - 1);< 890021#$Ultimate##0 ~n := #in~n; 891177#L25 assume !(~n <= 0); 890029#L26 call #t~ret0 := fact(~n - 1);< 890032#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890007#factFINAL assume true; 890000#factEXIT >#66#return; 889999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889996#factFINAL assume true; 889976#factEXIT >#66#return; 889975#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889969#factFINAL assume true; 889957#factEXIT >#76#return; 887075#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889946#$Ultimate##0 ~n := #in~n; 887072#L25 assume !(~n <= 0); 887078#L26 call #t~ret0 := fact(~n - 1);< 887091#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 887092#L25 assume !(~n <= 0); 887973#L26 call #t~ret0 := fact(~n - 1);< 890031#$Ultimate##0 ~n := #in~n; 890041#L25 assume ~n <= 0;#res := 1; 890040#factFINAL assume true; 890028#factEXIT >#66#return; 890026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890023#factFINAL assume true; 890016#factEXIT >#66#return; 890014#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890007#factFINAL assume true; 890000#factEXIT >#66#return; 889999#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889996#factFINAL assume true; 889976#factEXIT >#66#return; 889980#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889013#factFINAL assume true; 889002#factEXIT >#66#return; 888917#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888898#factFINAL assume true; 888595#factEXIT >#66#return; 888594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888516#factFINAL assume true; 888467#factEXIT >#66#return; 888468#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890097#factFINAL assume true; 890095#factEXIT >#78#return; 887146#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890226#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 890223#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890211#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 890207#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 890206#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 890205#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890199#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889885#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 887036#$Ultimate##0 ~n := #in~n; 890119#L25 assume !(~n <= 0); 889804#L26 call #t~ret0 := fact(~n - 1);< 889808#$Ultimate##0 ~n := #in~n; 889809#L25 assume !(~n <= 0); 889793#L26 call #t~ret0 := fact(~n - 1);< 889805#$Ultimate##0 ~n := #in~n; 889806#L25 assume !(~n <= 0); 889794#L26 call #t~ret0 := fact(~n - 1);< 889812#$Ultimate##0 ~n := #in~n; 889806#L25 assume !(~n <= 0); 889794#L26 call #t~ret0 := fact(~n - 1);< 889812#$Ultimate##0 ~n := #in~n; 889806#L25 assume !(~n <= 0); 889794#L26 call #t~ret0 := fact(~n - 1);< 889812#$Ultimate##0 ~n := #in~n; 889944#L25 assume ~n <= 0;#res := 1; 889898#factFINAL assume true; 889811#factEXIT >#66#return; 889807#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889802#factFINAL assume true; 889792#factEXIT >#66#return; 889798#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890137#factFINAL assume true; 890133#factEXIT >#66#return; 890128#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890118#factFINAL assume true; 890116#factEXIT >#66#return; 890115#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890114#factFINAL assume true; 890104#factEXIT >#66#return; 890099#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890098#factFINAL assume true; 890094#factEXIT >#68#return; 889735#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889760#$Ultimate##0 ~n := #in~n; 889789#L25 assume ~n <= 0;#res := 1; 889778#factFINAL assume true; 889725#factEXIT >#70#return; 889753#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 890090#$Ultimate##0 ~n := #in~n; 890656#L25 assume !(~n <= 0); 890540#L26 call #t~ret0 := fact(~n - 1);< 890545#$Ultimate##0 ~n := #in~n; 890661#L25 assume !(~n <= 0); 890557#L26 call #t~ret0 := fact(~n - 1);< 890561#$Ultimate##0 ~n := #in~n; 890576#L25 assume !(~n <= 0); 890569#L26 call #t~ret0 := fact(~n - 1);< 890573#$Ultimate##0 ~n := #in~n; 890589#L25 assume !(~n <= 0); 887052#L26 call #t~ret0 := fact(~n - 1);< 890587#$Ultimate##0 ~n := #in~n; 891098#L25 assume !(~n <= 0); 887051#L26 call #t~ret0 := fact(~n - 1);< 887054#$Ultimate##0 ~n := #in~n; 890659#L25 assume ~n <= 0;#res := 1; 890658#factFINAL assume true; 890596#factEXIT >#66#return; 890594#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890592#factFINAL assume true; 890584#factEXIT >#66#return; 890582#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890581#factFINAL assume true; 890568#factEXIT >#66#return; 890566#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890563#factFINAL assume true; 890556#factEXIT >#66#return; 890553#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890550#factFINAL assume true; 890539#factEXIT >#66#return; 890543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890538#factFINAL assume true; 890419#factEXIT >#72#return; 890424#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890691#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890689#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890687#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890685#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887011#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 890412#$Ultimate##0 ~n := #in~n; 890443#L25 assume !(~n <= 0); 890434#L26 call #t~ret0 := fact(~n - 1);< 890442#$Ultimate##0 ~n := #in~n; 890549#L25 assume !(~n <= 0); 890439#L26 call #t~ret0 := fact(~n - 1);< 890489#$Ultimate##0 ~n := #in~n; 890513#L25 assume !(~n <= 0); 890436#L26 call #t~ret0 := fact(~n - 1);< 890510#$Ultimate##0 ~n := #in~n; 890513#L25 assume !(~n <= 0); 890436#L26 call #t~ret0 := fact(~n - 1);< 890510#$Ultimate##0 ~n := #in~n; 890513#L25 assume !(~n <= 0); 890436#L26 call #t~ret0 := fact(~n - 1);< 890510#$Ultimate##0 ~n := #in~n; 890515#L25 assume ~n <= 0;#res := 1; 890514#factFINAL assume true; 890508#factEXIT >#66#return; 890507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890506#factFINAL assume true; 890487#factEXIT >#66#return; 890485#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890481#factFINAL assume true; 890462#factEXIT >#66#return; 890460#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890459#factFINAL assume true; 890456#factEXIT >#66#return; 890455#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890454#factFINAL assume true; 890450#factEXIT >#66#return; 890451#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890562#factFINAL assume true; 890555#factEXIT >#68#return; 890388#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887088#$Ultimate##0 ~n := #in~n; 890499#L25 assume ~n <= 0;#res := 1; 890498#factFINAL assume true; 890386#factEXIT >#70#return; 888579#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889510#$Ultimate##0 ~n := #in~n; 889509#L25 assume !(~n <= 0); 888519#L26 call #t~ret0 := fact(~n - 1);< 888581#$Ultimate##0 ~n := #in~n; 891194#L25 assume !(~n <= 0); 888501#L26 call #t~ret0 := fact(~n - 1);< 888509#$Ultimate##0 ~n := #in~n; 889017#L25 assume !(~n <= 0); 888536#L26 call #t~ret0 := fact(~n - 1);< 888546#$Ultimate##0 ~n := #in~n; 889911#L25 assume !(~n <= 0); 887082#L26 call #t~ret0 := fact(~n - 1);< 887093#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888531#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890453#factFINAL assume true; 890384#factEXIT >#72#return; 890316#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890684#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890683#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890681#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890679#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889143#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889242#$Ultimate##0 ~n := #in~n; 889117#L25 assume !(~n <= 0); 888479#L26 call #t~ret0 := fact(~n - 1);< 889469#$Ultimate##0 ~n := #in~n; 889462#L25 assume !(~n <= 0); 888483#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890287#factFINAL assume true; 890282#factEXIT >#68#return; 888770#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887090#$Ultimate##0 ~n := #in~n; 889463#L25 assume !(~n <= 0); 888486#L26 call #t~ret0 := fact(~n - 1);< 888838#$Ultimate##0 ~n := #in~n; 891193#L25 assume !(~n <= 0); 888482#L26 call #t~ret0 := fact(~n - 1);< 889009#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888904#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889702#factFINAL assume true; 889697#factEXIT >#70#return; 888611#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889001#$Ultimate##0 ~n := #in~n; 888912#L25 assume !(~n <= 0); 888478#L26 call #t~ret0 := fact(~n - 1);< 888547#$Ultimate##0 ~n := #in~n; 889018#L25 assume !(~n <= 0); 888542#L26 call #t~ret0 := fact(~n - 1);< 888905#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888507#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890368#factFINAL assume true; 890363#factEXIT >#72#return; 890336#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890673#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890672#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890671#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890657#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889165#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889242#$Ultimate##0 ~n := #in~n; 889117#L25 assume !(~n <= 0); 888479#L26 call #t~ret0 := fact(~n - 1);< 889469#$Ultimate##0 ~n := #in~n; 889462#L25 assume !(~n <= 0); 888483#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889484#factFINAL assume true; 889476#factEXIT >#66#return; 889482#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890286#factFINAL assume true; 890280#factEXIT >#68#return; 889417#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889706#$Ultimate##0 ~n := #in~n; 889402#L25 assume !(~n <= 0); 888475#L26 call #t~ret0 := fact(~n - 1);< 888592#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889484#factFINAL assume true; 889476#factEXIT >#66#return; 889479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889920#factFINAL assume true; 889913#factEXIT >#66#return; 889916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889988#factFINAL assume true; 889947#factEXIT >#66#return; 889952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890194#factFINAL assume true; 890379#factEXIT >#66#return; 890185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890188#factFINAL assume true; 890184#factEXIT >#66#return; 890186#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 891054#factFINAL assume true; 890269#factEXIT >#70#return; 889536#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889695#$Ultimate##0 ~n := #in~n; 889833#L25 assume !(~n <= 0); 888585#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888588#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889761#factFINAL assume true; 889720#factEXIT >#72#return; 889622#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 890767#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 890764#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 890761#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890660#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 889135#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 889242#$Ultimate##0 ~n := #in~n; 889117#L25 assume !(~n <= 0); 888479#L26 call #t~ret0 := fact(~n - 1);< 889469#$Ultimate##0 ~n := #in~n; 889462#L25 assume !(~n <= 0); 888483#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888528#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890287#factFINAL assume true; 890282#factEXIT >#68#return; 888776#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 887090#$Ultimate##0 ~n := #in~n; 889463#L25 assume !(~n <= 0); 888486#L26 call #t~ret0 := fact(~n - 1);< 888838#$Ultimate##0 ~n := #in~n; 891193#L25 assume !(~n <= 0); 888482#L26 call #t~ret0 := fact(~n - 1);< 889009#$Ultimate##0 ~n := #in~n; 889113#L25 assume !(~n <= 0); 888539#L26 call #t~ret0 := fact(~n - 1);< 889011#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888505#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890694#factFINAL assume true; 890268#factEXIT >#70#return; 888972#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889098#$Ultimate##0 ~n := #in~n; 889096#L25 assume ~n <= 0;#res := 1; 889039#factFINAL assume true; 889523#factEXIT >#72#return; 889639#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891352#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 891349#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891348#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 891346#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888018#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888366#$Ultimate##0 ~n := #in~n; 889470#L25 assume !(~n <= 0); 888487#L26 call #t~ret0 := fact(~n - 1);< 889469#$Ultimate##0 ~n := #in~n; 889462#L25 assume !(~n <= 0); 888483#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#74#return; 888140#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889921#$Ultimate##0 ~n := #in~n; 890038#L25 assume !(~n <= 0); 888474#L26 call #t~ret0 := fact(~n - 1);< 888509#$Ultimate##0 ~n := #in~n; 889017#L25 assume !(~n <= 0); 888536#L26 call #t~ret0 := fact(~n - 1);< 888546#$Ultimate##0 ~n := #in~n; 889911#L25 assume !(~n <= 0); 887082#L26 call #t~ret0 := fact(~n - 1);< 887093#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#76#return; 888340#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 888417#$Ultimate##0 ~n := #in~n; 889021#L25 assume !(~n <= 0); 888586#L26 call #t~ret0 := fact(~n - 1);< 888591#$Ultimate##0 ~n := #in~n; 888911#L25 assume ~n <= 0;#res := 1; 888655#factFINAL assume true; 888584#factEXIT >#66#return; 888514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888510#factFINAL assume true; 888369#factEXIT >#78#return; 888408#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891022#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 891021#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891020#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 891019#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888445#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889484#factFINAL assume true; 889476#factEXIT >#66#return; 889474#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889472#factFINAL assume true; 889471#factEXIT >#74#return; 888233#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889921#$Ultimate##0 ~n := #in~n; 890038#L25 assume !(~n <= 0); 888474#L26 call #t~ret0 := fact(~n - 1);< 888509#$Ultimate##0 ~n := #in~n; 889017#L25 assume !(~n <= 0); 888536#L26 call #t~ret0 := fact(~n - 1);< 888546#$Ultimate##0 ~n := #in~n; 889911#L25 assume !(~n <= 0); 887082#L26 call #t~ret0 := fact(~n - 1);< 887093#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#76#return; 888353#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 888511#$Ultimate##0 ~n := #in~n; 889041#L25 assume !(~n <= 0); 887085#L26 call #t~ret0 := fact(~n - 1);< 888919#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888902#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890049#factFINAL assume true; 889101#factEXIT >#78#return; 889110#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891017#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 891016#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891015#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 891014#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888460#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889484#factFINAL assume true; 889476#factEXIT >#66#return; 889479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889920#factFINAL assume true; 889913#factEXIT >#66#return; 889912#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889910#factFINAL assume true; 889842#factEXIT >#74#return; 888302#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889921#$Ultimate##0 ~n := #in~n; 890038#L25 assume !(~n <= 0); 888474#L26 call #t~ret0 := fact(~n - 1);< 888509#$Ultimate##0 ~n := #in~n; 889017#L25 assume !(~n <= 0); 888536#L26 call #t~ret0 := fact(~n - 1);< 888546#$Ultimate##0 ~n := #in~n; 889911#L25 assume !(~n <= 0); 887082#L26 call #t~ret0 := fact(~n - 1);< 887093#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#76#return; 888362#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889033#$Ultimate##0 ~n := #in~n; 889030#L25 assume !(~n <= 0); 888535#L26 call #t~ret0 := fact(~n - 1);< 888597#$Ultimate##0 ~n := #in~n; 890372#L25 assume !(~n <= 0); 887080#L26 call #t~ret0 := fact(~n - 1);< 889007#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888543#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889513#factFINAL assume true; 889506#factEXIT >#78#return; 888313#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891013#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 891012#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891011#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 891006#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 888429#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 888466#$Ultimate##0 ~n := #in~n; 888582#L25 assume !(~n <= 0); 888527#L26 call #t~ret0 := fact(~n - 1);< 889042#$Ultimate##0 ~n := #in~n; 889043#L25 assume !(~n <= 0); 888502#L26 call #t~ret0 := fact(~n - 1);< 888910#$Ultimate##0 ~n := #in~n; 890054#L25 assume !(~n <= 0); 888500#L26 call #t~ret0 := fact(~n - 1);< 888570#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888506#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888548#factFINAL assume true; 888523#factEXIT >#66#return; 888529#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889484#factFINAL assume true; 889476#factEXIT >#66#return; 889479#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889920#factFINAL assume true; 889913#factEXIT >#66#return; 889916#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889988#factFINAL assume true; 889947#factEXIT >#66#return; 889952#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890194#factFINAL assume true; 890379#factEXIT >#66#return; 890185#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 890188#factFINAL assume true; 890184#factEXIT >#66#return; 890156#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 889835#factFINAL assume true; 889836#factEXIT >#74#return; 888168#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 889921#$Ultimate##0 ~n := #in~n; 890038#L25 assume !(~n <= 0); 888474#L26 call #t~ret0 := fact(~n - 1);< 888509#$Ultimate##0 ~n := #in~n; 889017#L25 assume !(~n <= 0); 888536#L26 call #t~ret0 := fact(~n - 1);< 888546#$Ultimate##0 ~n := #in~n; 889911#L25 assume !(~n <= 0); 887082#L26 call #t~ret0 := fact(~n - 1);< 887093#$Ultimate##0 ~n := #in~n; 887079#L25 assume !(~n <= 0); 887081#L26 call #t~ret0 := fact(~n - 1);< 889008#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#76#return; 888089#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 889000#$Ultimate##0 ~n := #in~n; 888908#L25 assume !(~n <= 0); 888497#L26 call #t~ret0 := fact(~n - 1);< 888592#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 889052#L25 assume !(~n <= 0); 888476#L26 call #t~ret0 := fact(~n - 1);< 889490#$Ultimate##0 ~n := #in~n; 891179#L25 assume ~n <= 0;#res := 1; 891178#factFINAL assume true; 889006#factEXIT >#66#return; 889005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888918#factFINAL assume true; 888901#factEXIT >#66#return; 888900#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888596#factFINAL assume true; 888534#factEXIT >#66#return; 888521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888517#factFINAL assume true; 888471#factEXIT >#66#return; 888470#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 888365#factFINAL assume true; 888004#factEXIT >#78#return; 888328#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 891003#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 891002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 891001#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 890238#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 887115#L30-5 [2023-02-17 09:44:01,380 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:44:01,380 INFO L85 PathProgramCache]: Analyzing trace with hash 1226195087, now seen corresponding path program 56 times [2023-02-17 09:44:01,380 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:44:01,380 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1598951269] [2023-02-17 09:44:01,380 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:44:01,380 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:44:01,417 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:44:01,417 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1921324267] [2023-02-17 09:44:01,418 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:44:01,418 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:44:01,418 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:44:01,420 INFO L229 MonitoredProcess]: Starting monitored process 261 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:44:01,422 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (261)] Waiting until timeout for monitored process [2023-02-17 09:44:02,922 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:44:02,922 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:44:02,938 INFO L263 TraceCheckSpWp]: Trace formula consists of 4042 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:44:02,948 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:44:03,045 INFO L134 CoverageAnalysis]: Checked inductivity of 222172 backedges. 97694 proven. 332 refuted. 0 times theorem prover too weak. 124146 trivial. 0 not checked. [2023-02-17 09:44:03,045 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:44:03,169 INFO L134 CoverageAnalysis]: Checked inductivity of 222172 backedges. 1334 proven. 332 refuted. 0 times theorem prover too weak. 220506 trivial. 0 not checked. [2023-02-17 09:44:03,170 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:44:03,170 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1598951269] [2023-02-17 09:44:03,170 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:44:03,170 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1921324267] [2023-02-17 09:44:03,171 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1921324267] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:44:03,171 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:44:03,171 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:44:03,171 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [811321606] [2023-02-17 09:44:03,171 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:44:03,172 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:44:03,172 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:44:03,172 INFO L85 PathProgramCache]: Analyzing trace with hash 1917801164, now seen corresponding path program 50 times [2023-02-17 09:44:03,172 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:44:03,172 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1288977056] [2023-02-17 09:44:03,173 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:44:03,173 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:44:03,334 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:44:03,334 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [562454471] [2023-02-17 09:44:03,335 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2023-02-17 09:44:03,335 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:44:03,335 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:44:03,337 INFO L229 MonitoredProcess]: Starting monitored process 262 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:44:03,339 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (262)] Waiting until timeout for monitored process [2023-02-17 09:44:04,609 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2023-02-17 09:44:04,609 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:44:04,617 INFO L263 TraceCheckSpWp]: Trace formula consists of 2090 conjuncts, 47 conjunts are in the unsatisfiable core [2023-02-17 09:44:04,623 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:44:04,765 INFO L134 CoverageAnalysis]: Checked inductivity of 68795 backedges. 17962 proven. 863 refuted. 0 times theorem prover too weak. 49970 trivial. 0 not checked. [2023-02-17 09:44:04,765 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:44:05,453 INFO L134 CoverageAnalysis]: Checked inductivity of 68795 backedges. 190 proven. 14709 refuted. 0 times theorem prover too weak. 53896 trivial. 0 not checked. [2023-02-17 09:44:05,454 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:44:05,454 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1288977056] [2023-02-17 09:44:05,454 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:44:05,454 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [562454471] [2023-02-17 09:44:05,454 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [562454471] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:44:05,454 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:44:05,454 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [24, 40] total 43 [2023-02-17 09:44:05,454 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1310362987] [2023-02-17 09:44:05,454 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:44:05,455 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:44:05,455 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:44:05,455 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 43 interpolants. [2023-02-17 09:44:05,455 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=273, Invalid=1533, Unknown=0, NotChecked=0, Total=1806 [2023-02-17 09:44:05,456 INFO L87 Difference]: Start difference. First operand 4402 states and 9887 transitions. cyclomatic complexity: 5523 Second operand has 43 states, 40 states have (on average 2.45) internal successors, (98), 40 states have internal predecessors, (98), 24 states have call successors, (37), 2 states have call predecessors, (37), 20 states have return successors, (52), 22 states have call predecessors, (52), 24 states have call successors, (52) [2023-02-17 09:44:07,277 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:44:07,277 INFO L93 Difference]: Finished difference Result 6141 states and 13280 transitions. [2023-02-17 09:44:07,277 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 6141 states and 13280 transitions. [2023-02-17 09:44:07,328 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 2157 [2023-02-17 09:44:07,386 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 6141 states to 6136 states and 13266 transitions. [2023-02-17 09:44:07,386 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 896 [2023-02-17 09:44:07,387 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 911 [2023-02-17 09:44:07,387 INFO L73 IsDeterministic]: Start isDeterministic. Operand 6136 states and 13266 transitions. [2023-02-17 09:44:07,393 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:44:07,394 INFO L218 hiAutomatonCegarLoop]: Abstraction has 6136 states and 13266 transitions. [2023-02-17 09:44:07,397 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 6136 states and 13266 transitions. [2023-02-17 09:44:07,510 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 6136 to 4542. [2023-02-17 09:44:07,515 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4542 states, 2379 states have (on average 1.0420344682639764) internal successors, (2479), 2353 states have internal predecessors, (2479), 1901 states have call successors, (1923), 335 states have call predecessors, (1923), 262 states have return successors, (6272), 1853 states have call predecessors, (6272), 1901 states have call successors, (6272) [2023-02-17 09:44:07,539 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4542 states to 4542 states and 10674 transitions. [2023-02-17 09:44:07,539 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4542 states and 10674 transitions. [2023-02-17 09:44:07,539 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 38 states. [2023-02-17 09:44:07,540 INFO L428 stractBuchiCegarLoop]: Abstraction has 4542 states and 10674 transitions. [2023-02-17 09:44:07,540 INFO L335 stractBuchiCegarLoop]: ======== Iteration 80 ============ [2023-02-17 09:44:07,540 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4542 states and 10674 transitions. [2023-02-17 09:44:07,554 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 1502 [2023-02-17 09:44:07,554 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:44:07,554 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:44:07,560 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [303, 303, 216, 216, 216, 216, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:44:07,560 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [158, 158, 128, 128, 128, 128, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:44:07,561 INFO L748 eck$LassoCheckResult]: Stem: 914846#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 914785#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 914786#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 914809#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 914847#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 915387#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915385#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915381#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 915382#$Ultimate##0 ~n := #in~n; 915386#L25 assume ~n <= 0;#res := 1; 915384#factFINAL assume true; 915380#factEXIT >#68#return; 915376#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915377#$Ultimate##0 ~n := #in~n; 915383#L25 assume ~n <= 0;#res := 1; 915379#factFINAL assume true; 915375#factEXIT >#70#return; 915371#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915372#$Ultimate##0 ~n := #in~n; 915378#L25 assume ~n <= 0;#res := 1; 915374#factFINAL assume true; 915370#factEXIT >#72#return; 915348#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 915347#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 915346#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 915344#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915342#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915326#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 915327#$Ultimate##0 ~n := #in~n; 915345#L25 assume !(~n <= 0); 915335#L26 call #t~ret0 := fact(~n - 1);< 915337#$Ultimate##0 ~n := #in~n; 915343#L25 assume ~n <= 0;#res := 1; 915340#factFINAL assume true; 915333#factEXIT >#66#return; 915336#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915331#factFINAL assume true; 915325#factEXIT >#74#return; 915323#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915324#$Ultimate##0 ~n := #in~n; 915338#L25 assume ~n <= 0;#res := 1; 915330#factFINAL assume true; 915322#factEXIT >#76#return; 915318#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915319#$Ultimate##0 ~n := #in~n; 915341#L25 assume !(~n <= 0); 915334#L26 call #t~ret0 := fact(~n - 1);< 915337#$Ultimate##0 ~n := #in~n; 915343#L25 assume ~n <= 0;#res := 1; 915340#factFINAL assume true; 915333#factEXIT >#66#return; 915329#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915321#factFINAL assume true; 915317#factEXIT >#78#return; 915308#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 915284#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 915280#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 915278#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915277#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915249#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 915251#$Ultimate##0 ~n := #in~n; 915266#L25 assume !(~n <= 0); 915260#L26 call #t~ret0 := fact(~n - 1);< 915262#$Ultimate##0 ~n := #in~n; 915276#L25 assume !(~n <= 0); 915261#L26 call #t~ret0 := fact(~n - 1);< 915275#$Ultimate##0 ~n := #in~n; 915301#L25 assume ~n <= 0;#res := 1; 915300#factFINAL assume true; 915294#factEXIT >#66#return; 915292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915290#factFINAL assume true; 915271#factEXIT >#66#return; 915273#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915306#factFINAL assume true; 915304#factEXIT >#74#return; 915298#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915299#$Ultimate##0 ~n := #in~n; 915305#L25 assume ~n <= 0;#res := 1; 915303#factFINAL assume true; 915297#factEXIT >#76#return; 915282#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915283#$Ultimate##0 ~n := #in~n; 915293#L25 assume !(~n <= 0); 915272#L26 call #t~ret0 := fact(~n - 1);< 915291#$Ultimate##0 ~n := #in~n; 915302#L25 assume !(~n <= 0); 915295#L26 call #t~ret0 := fact(~n - 1);< 915296#$Ultimate##0 ~n := #in~n; 915301#L25 assume ~n <= 0;#res := 1; 915300#factFINAL assume true; 915294#factEXIT >#66#return; 915292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915290#factFINAL assume true; 915271#factEXIT >#66#return; 915274#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915289#factFINAL assume true; 915281#factEXIT >#78#return; 915279#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 915267#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 915263#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 915257#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915254#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915250#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 915251#$Ultimate##0 ~n := #in~n; 915266#L25 assume !(~n <= 0); 915260#L26 call #t~ret0 := fact(~n - 1);< 915262#$Ultimate##0 ~n := #in~n; 915276#L25 assume !(~n <= 0); 915261#L26 call #t~ret0 := fact(~n - 1);< 915275#$Ultimate##0 ~n := #in~n; 915276#L25 assume !(~n <= 0); 915261#L26 call #t~ret0 := fact(~n - 1);< 915275#$Ultimate##0 ~n := #in~n; 915301#L25 assume ~n <= 0;#res := 1; 915300#factFINAL assume true; 915294#factEXIT >#66#return; 915292#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915290#factFINAL assume true; 915271#factEXIT >#66#return; 915270#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915265#factFINAL assume true; 915259#factEXIT >#66#return; 915256#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915253#factFINAL assume true; 915248#factEXIT >#74#return; 915245#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915246#$Ultimate##0 ~n := #in~n; 915315#L25 assume ~n <= 0;#res := 1; 915307#factFINAL assume true; 915244#factEXIT >#76#return; 915235#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915242#$Ultimate##0 ~n := #in~n; 915237#L25 assume !(~n <= 0); 915223#L26 call #t~ret0 := fact(~n - 1);< 915236#$Ultimate##0 ~n := #in~n; 915287#L25 assume !(~n <= 0); 915224#L26 call #t~ret0 := fact(~n - 1);< 915227#$Ultimate##0 ~n := #in~n; 915288#L25 assume !(~n <= 0); 915222#L26 call #t~ret0 := fact(~n - 1);< 915269#$Ultimate##0 ~n := #in~n; 915286#L25 assume ~n <= 0;#res := 1; 915285#factFINAL assume true; 915268#factEXIT >#66#return; 915264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915258#factFINAL assume true; 915255#factEXIT >#66#return; 915252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915247#factFINAL assume true; 915241#factEXIT >#66#return; 915226#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915368#factFINAL assume true; 915339#factEXIT >#78#return; 915332#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 915328#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 915320#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 915316#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915233#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915213#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 915214#$Ultimate##0 ~n := #in~n; 915229#L25 assume !(~n <= 0); 915225#L26 call #t~ret0 := fact(~n - 1);< 915227#$Ultimate##0 ~n := #in~n; 915288#L25 assume !(~n <= 0); 915222#L26 call #t~ret0 := fact(~n - 1);< 915269#$Ultimate##0 ~n := #in~n; 915288#L25 assume !(~n <= 0); 915222#L26 call #t~ret0 := fact(~n - 1);< 915269#$Ultimate##0 ~n := #in~n; 915288#L25 assume !(~n <= 0); 915222#L26 call #t~ret0 := fact(~n - 1);< 915269#$Ultimate##0 ~n := #in~n; 915286#L25 assume ~n <= 0;#res := 1; 915285#factFINAL assume true; 915268#factEXIT >#66#return; 915264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915258#factFINAL assume true; 915255#factEXIT >#66#return; 915252#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915247#factFINAL assume true; 915241#factEXIT >#66#return; 915239#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915234#factFINAL assume true; 915221#factEXIT >#66#return; 915220#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915219#factFINAL assume true; 915212#factEXIT >#74#return; 915207#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915208#$Ultimate##0 ~n := #in~n; 915232#L25 assume ~n <= 0;#res := 1; 915211#factFINAL assume true; 915206#factEXIT >#76#return; 915198#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915203#$Ultimate##0 ~n := #in~n; 915201#L25 assume !(~n <= 0); 915179#L26 call #t~ret0 := fact(~n - 1);< 915199#$Ultimate##0 ~n := #in~n; 915314#L25 assume !(~n <= 0); 915186#L26 call #t~ret0 := fact(~n - 1);< 915210#$Ultimate##0 ~n := #in~n; 915228#L25 assume !(~n <= 0); 915183#L26 call #t~ret0 := fact(~n - 1);< 915218#$Ultimate##0 ~n := #in~n; 915228#L25 assume !(~n <= 0); 915183#L26 call #t~ret0 := fact(~n - 1);< 915218#$Ultimate##0 ~n := #in~n; 915231#L25 assume ~n <= 0;#res := 1; 915230#factFINAL assume true; 915217#factEXIT >#66#return; 915216#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915215#factFINAL assume true; 915209#factEXIT >#66#return; 915205#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915204#factFINAL assume true; 915202#factEXIT >#66#return; 915200#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915197#factFINAL assume true; 915194#factEXIT >#66#return; 915195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915444#factFINAL assume true; 915442#factEXIT >#78#return; 915441#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 915440#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 915437#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 915430#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915427#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914975#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 915042#$Ultimate##0 ~n := #in~n; 915041#L25 assume !(~n <= 0); 914979#L26 call #t~ret0 := fact(~n - 1);< 915040#$Ultimate##0 ~n := #in~n; 915039#L25 assume !(~n <= 0); 914995#L26 call #t~ret0 := fact(~n - 1);< 915038#$Ultimate##0 ~n := #in~n; 915037#L25 assume !(~n <= 0); 915007#L26 call #t~ret0 := fact(~n - 1);< 915036#$Ultimate##0 ~n := #in~n; 915035#L25 assume !(~n <= 0); 915006#L26 call #t~ret0 := fact(~n - 1);< 915034#$Ultimate##0 ~n := #in~n; 915035#L25 assume !(~n <= 0); 915006#L26 call #t~ret0 := fact(~n - 1);< 915034#$Ultimate##0 ~n := #in~n; 915031#L25 assume ~n <= 0;#res := 1; 915032#factFINAL assume true; 915028#factEXIT >#66#return; 915026#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915027#factFINAL assume true; 915019#factEXIT >#66#return; 915015#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915016#factFINAL assume true; 915005#factEXIT >#66#return; 915008#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914998#factFINAL assume true; 914994#factEXIT >#66#return; 914990#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914991#factFINAL assume true; 914978#factEXIT >#66#return; 914974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914976#factFINAL assume true; 915078#factEXIT >#74#return; 914959#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915879#$Ultimate##0 ~n := #in~n; 914966#L25 assume ~n <= 0;#res := 1; 914958#factFINAL assume true; 914960#factEXIT >#76#return; 914776#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915876#$Ultimate##0 ~n := #in~n; 915874#L25 assume !(~n <= 0); 915119#L26 call #t~ret0 := fact(~n - 1);< 915841#$Ultimate##0 ~n := #in~n; 918228#L25 assume !(~n <= 0); 915115#L26 call #t~ret0 := fact(~n - 1);< 915878#$Ultimate##0 ~n := #in~n; 915934#L25 assume !(~n <= 0); 915113#L26 call #t~ret0 := fact(~n - 1);< 915916#$Ultimate##0 ~n := #in~n; 915952#L25 assume !(~n <= 0); 915114#L26 call #t~ret0 := fact(~n - 1);< 915924#$Ultimate##0 ~n := #in~n; 915931#L25 assume !(~n <= 0); 915112#L26 call #t~ret0 := fact(~n - 1);< 915930#$Ultimate##0 ~n := #in~n; 915933#L25 assume ~n <= 0;#res := 1; 915932#factFINAL assume true; 915929#factEXIT >#66#return; 915928#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915925#factFINAL assume true; 915923#factEXIT >#66#return; 915920#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915919#factFINAL assume true; 915915#factEXIT >#66#return; 915911#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915909#factFINAL assume true; 915877#factEXIT >#66#return; 915875#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915873#factFINAL assume true; 915840#factEXIT >#66#return; 914816#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 914775#factFINAL assume true; 914777#factEXIT >#78#return; 914938#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 914937#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 914936#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 914935#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 914934#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 914933#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 914932#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914931#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914899#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914920#$Ultimate##0 ~n := #in~n; 917723#L25 assume !(~n <= 0); 915130#L26 call #t~ret0 := fact(~n - 1);< 917721#$Ultimate##0 ~n := #in~n; 917729#L25 assume ~n <= 0;#res := 1; 917727#factFINAL assume true; 917720#factEXIT >#66#return; 917714#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917705#factFINAL assume true; 917701#factEXIT >#68#return; 914889#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914929#$Ultimate##0 ~n := #in~n; 914922#L25 assume ~n <= 0;#res := 1; 914921#factFINAL assume true; 914885#factEXIT >#70#return; 914906#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917685#$Ultimate##0 ~n := #in~n; 917713#L25 assume !(~n <= 0); 914792#L26 call #t~ret0 := fact(~n - 1);< 917704#$Ultimate##0 ~n := #in~n; 917718#L25 assume ~n <= 0;#res := 1; 917712#factFINAL assume true; 917703#factEXIT >#66#return; 917700#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917697#factFINAL assume true; 917684#factEXIT >#72#return; 917642#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917641#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 917640#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917639#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917638#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917634#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917637#$Ultimate##0 ~n := #in~n; 918980#L25 assume !(~n <= 0); 916615#L26 call #t~ret0 := fact(~n - 1);< 916882#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917681#factFINAL assume true; 917633#factEXIT >#68#return; 916628#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917635#$Ultimate##0 ~n := #in~n; 918990#L25 assume !(~n <= 0); 916617#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917681#factFINAL assume true; 917633#factEXIT >#70#return; 917194#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917630#$Ultimate##0 ~n := #in~n; 917657#L25 assume ~n <= 0;#res := 1; 916964#factFINAL assume true; 917106#factEXIT >#72#return; 917286#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917627#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 917626#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917624#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917622#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916305#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917619#$Ultimate##0 ~n := #in~n; 918240#L25 assume !(~n <= 0); 916587#L26 call #t~ret0 := fact(~n - 1);< 917661#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#74#return; 916474#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916515#$Ultimate##0 ~n := #in~n; 918236#L25 assume !(~n <= 0); 916614#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#76#return; 916489#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916515#$Ultimate##0 ~n := #in~n; 918236#L25 assume !(~n <= 0); 916614#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#78#return; 916505#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917073#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 917066#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917060#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917061#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916406#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916957#$Ultimate##0 ~n := #in~n; 917621#L25 assume !(~n <= 0); 916598#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#74#return; 916475#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916515#$Ultimate##0 ~n := #in~n; 918236#L25 assume !(~n <= 0); 916614#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#76#return; 916506#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917675#$Ultimate##0 ~n := #in~n; 917673#L25 assume !(~n <= 0); 914829#L26 call #t~ret0 := fact(~n - 1);< 916955#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#78#return; 917090#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917691#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 917689#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917687#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917683#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916109#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916957#$Ultimate##0 ~n := #in~n; 917621#L25 assume !(~n <= 0); 916598#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#74#return; 916423#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916515#$Ultimate##0 ~n := #in~n; 918236#L25 assume !(~n <= 0); 916614#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#76#return; 916103#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916460#$Ultimate##0 ~n := #in~n; 917077#L25 assume !(~n <= 0); 916588#L26 call #t~ret0 := fact(~n - 1);< 916737#$Ultimate##0 ~n := #in~n; 917096#L25 assume !(~n <= 0); 916730#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#78#return; 916944#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 916738#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 916726#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 916625#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 916609#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916529#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916606#factFINAL assume true; 916519#factEXIT >#74#return; 916480#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916515#$Ultimate##0 ~n := #in~n; 918236#L25 assume !(~n <= 0); 916614#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#76#return; 916111#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916460#$Ultimate##0 ~n := #in~n; 917077#L25 assume !(~n <= 0); 916588#L26 call #t~ret0 := fact(~n - 1);< 916737#$Ultimate##0 ~n := #in~n; 917096#L25 assume !(~n <= 0); 916730#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#78#return; 916024#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 916023#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 916022#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 916020#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 916016#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914725#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914726#$Ultimate##0 ~n := #in~n; 915972#L25 assume !(~n <= 0); 915813#L26 call #t~ret0 := fact(~n - 1);< 915927#$Ultimate##0 ~n := #in~n; 916463#L25 assume !(~n <= 0); 915811#L26 call #t~ret0 := fact(~n - 1);< 915891#$Ultimate##0 ~n := #in~n; 918458#L25 assume !(~n <= 0); 915808#L26 call #t~ret0 := fact(~n - 1);< 915893#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915939#factFINAL assume true; 915901#factEXIT >#66#return; 915899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915898#factFINAL assume true; 915882#factEXIT >#66#return; 915887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915890#factFINAL assume true; 915851#factEXIT >#66#return; 915854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916011#factFINAL assume true; 916006#factEXIT >#66#return; 916007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917057#factFINAL assume true; 915731#factEXIT >#74#return; 914842#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914843#$Ultimate##0 ~n := #in~n; 916019#L25 assume !(~n <= 0); 916013#L26 call #t~ret0 := fact(~n - 1);< 916014#$Ultimate##0 ~n := #in~n; 916021#L25 assume ~n <= 0;#res := 1; 916018#factFINAL assume true; 916012#factEXIT >#66#return; 916010#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916009#factFINAL assume true; 915989#factEXIT >#76#return; 915745#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915847#$Ultimate##0 ~n := #in~n; 916462#L25 assume !(~n <= 0); 915821#L26 call #t~ret0 := fact(~n - 1);< 915855#$Ultimate##0 ~n := #in~n; 915966#L25 assume !(~n <= 0); 915817#L26 call #t~ret0 := fact(~n - 1);< 915893#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915939#factFINAL assume true; 915901#factEXIT >#66#return; 915899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915898#factFINAL assume true; 915882#factEXIT >#66#return; 915887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915890#factFINAL assume true; 915851#factEXIT >#66#return; 915854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916011#factFINAL assume true; 916006#factEXIT >#66#return; 916007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917057#factFINAL assume true; 915731#factEXIT >#78#return; 915762#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918967#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 918965#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918295#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 918283#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 918282#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 918276#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 915839#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914781#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914782#$Ultimate##0 ~n := #in~n; 915996#L25 assume !(~n <= 0); 915137#L26 call #t~ret0 := fact(~n - 1);< 915831#$Ultimate##0 ~n := #in~n; 916000#L25 assume !(~n <= 0); 915136#L26 call #t~ret0 := fact(~n - 1);< 915999#$Ultimate##0 ~n := #in~n; 916002#L25 assume ~n <= 0;#res := 1; 916001#factFINAL assume true; 915998#factEXIT >#66#return; 915997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915995#factFINAL assume true; 915912#factEXIT >#66#return; 915913#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917699#factFINAL assume true; 917696#factEXIT >#68#return; 914892#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914929#$Ultimate##0 ~n := #in~n; 914922#L25 assume ~n <= 0;#res := 1; 914921#factFINAL assume true; 914885#factEXIT >#70#return; 914909#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917694#$Ultimate##0 ~n := #in~n; 917711#L25 assume !(~n <= 0); 914795#L26 call #t~ret0 := fact(~n - 1);< 917710#$Ultimate##0 ~n := #in~n; 917719#L25 assume !(~n <= 0); 914791#L26 call #t~ret0 := fact(~n - 1);< 914796#$Ultimate##0 ~n := #in~n; 917735#L25 assume ~n <= 0;#res := 1; 917733#factFINAL assume true; 917724#factEXIT >#66#return; 917722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917715#factFINAL assume true; 917706#factEXIT >#66#return; 917702#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917698#factFINAL assume true; 917693#factEXIT >#72#return; 917692#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917690#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 917688#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917686#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917682#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917466#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917660#$Ultimate##0 ~n := #in~n; 917663#L25 assume !(~n <= 0); 916731#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917659#factFINAL assume true; 917292#factEXIT >#68#return; 917517#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917616#$Ultimate##0 ~n := #in~n; 917667#L25 assume !(~n <= 0); 916583#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916620#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917681#factFINAL assume true; 917633#factEXIT >#70#return; 917177#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917290#$Ultimate##0 ~n := #in~n; 918168#L25 assume !(~n <= 0); 916616#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917676#factFINAL assume true; 917669#factEXIT >#72#return; 917668#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917666#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 917665#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917664#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917662#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917520#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917660#$Ultimate##0 ~n := #in~n; 917663#L25 assume !(~n <= 0); 916731#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917659#factFINAL assume true; 917292#factEXIT >#68#return; 917532#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917616#$Ultimate##0 ~n := #in~n; 917667#L25 assume !(~n <= 0); 916583#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917659#factFINAL assume true; 917292#factEXIT >#70#return; 917182#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917290#$Ultimate##0 ~n := #in~n; 918168#L25 assume ~n <= 0;#res := 1; 916964#factFINAL assume true; 917106#factEXIT >#72#return; 917105#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917074#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 917075#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917695#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917059#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916273#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916957#$Ultimate##0 ~n := #in~n; 917621#L25 assume !(~n <= 0); 916598#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#74#return; 916280#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914845#$Ultimate##0 ~n := #in~n; 917050#L25 assume !(~n <= 0); 916571#L26 call #t~ret0 := fact(~n - 1);< 916954#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#76#return; 916485#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917625#$Ultimate##0 ~n := #in~n; 917623#L25 assume !(~n <= 0); 914832#L26 call #t~ret0 := fact(~n - 1);< 916967#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#78#return; 916498#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917636#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 917632#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917631#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917629#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916296#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916957#$Ultimate##0 ~n := #in~n; 917621#L25 assume !(~n <= 0); 916598#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#74#return; 914844#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914845#$Ultimate##0 ~n := #in~n; 917050#L25 assume !(~n <= 0); 916571#L26 call #t~ret0 := fact(~n - 1);< 916954#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#76#return; 916488#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917625#$Ultimate##0 ~n := #in~n; 917623#L25 assume !(~n <= 0); 914832#L26 call #t~ret0 := fact(~n - 1);< 916967#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#78#return; 917091#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917680#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 917679#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917678#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917677#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916549#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916606#factFINAL assume true; 916519#factEXIT >#74#return; 916291#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914845#$Ultimate##0 ~n := #in~n; 917050#L25 assume !(~n <= 0); 916571#L26 call #t~ret0 := fact(~n - 1);< 916954#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#76#return; 916284#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916460#$Ultimate##0 ~n := #in~n; 917077#L25 assume !(~n <= 0); 916588#L26 call #t~ret0 := fact(~n - 1);< 916737#$Ultimate##0 ~n := #in~n; 917096#L25 assume !(~n <= 0); 916730#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#78#return; 916447#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918172#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 918164#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918163#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918162#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916555#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918311#factFINAL assume true; 918301#factEXIT >#74#return; 916301#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914845#$Ultimate##0 ~n := #in~n; 917050#L25 assume !(~n <= 0); 916571#L26 call #t~ret0 := fact(~n - 1);< 916954#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#76#return; 916313#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916465#$Ultimate##0 ~n := #in~n; 918251#L25 assume !(~n <= 0); 916590#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#78#return; 916421#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919029#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919025#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919021#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917868#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915747#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914726#$Ultimate##0 ~n := #in~n; 915972#L25 assume !(~n <= 0); 915813#L26 call #t~ret0 := fact(~n - 1);< 915927#$Ultimate##0 ~n := #in~n; 916463#L25 assume !(~n <= 0); 915811#L26 call #t~ret0 := fact(~n - 1);< 915891#$Ultimate##0 ~n := #in~n; 918458#L25 assume !(~n <= 0); 915808#L26 call #t~ret0 := fact(~n - 1);< 915893#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915939#factFINAL assume true; 915901#factEXIT >#66#return; 915899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915898#factFINAL assume true; 915882#factEXIT >#66#return; 915887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915890#factFINAL assume true; 915851#factEXIT >#66#return; 915854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916011#factFINAL assume true; 916006#factEXIT >#66#return; 916005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916004#factFINAL assume true; 915936#factEXIT >#66#return; 915937#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916003#factFINAL assume true; 915992#factEXIT >#74#return; 914733#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915960#$Ultimate##0 ~n := #in~n; 915958#L25 assume !(~n <= 0); 915884#L26 call #t~ret0 := fact(~n - 1);< 915957#$Ultimate##0 ~n := #in~n; 915976#L25 assume !(~n <= 0); 915903#L26 call #t~ret0 := fact(~n - 1);< 915963#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915945#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917861#factFINAL assume true; 917746#factEXIT >#76#return; 915742#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 915777#$Ultimate##0 ~n := #in~n; 915986#L25 assume !(~n <= 0); 915814#L26 call #t~ret0 := fact(~n - 1);< 915889#$Ultimate##0 ~n := #in~n; 915977#L25 assume !(~n <= 0); 915824#L26 call #t~ret0 := fact(~n - 1);< 915906#$Ultimate##0 ~n := #in~n; 915966#L25 assume !(~n <= 0); 915817#L26 call #t~ret0 := fact(~n - 1);< 915893#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915939#factFINAL assume true; 915901#factEXIT >#66#return; 915899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915898#factFINAL assume true; 915882#factEXIT >#66#return; 915887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915890#factFINAL assume true; 915851#factEXIT >#66#return; 915854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916011#factFINAL assume true; 916006#factEXIT >#66#return; 916007#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917057#factFINAL assume true; 915731#factEXIT >#78#return; 915765#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919130#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919034#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919033#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 919028#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 919024#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 919020#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 914812#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914813#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 915834#$Ultimate##0 ~n := #in~n; 915832#L25 assume !(~n <= 0); 915127#L26 call #t~ret0 := fact(~n - 1);< 915831#$Ultimate##0 ~n := #in~n; 916000#L25 assume !(~n <= 0); 915136#L26 call #t~ret0 := fact(~n - 1);< 915999#$Ultimate##0 ~n := #in~n; 916000#L25 assume !(~n <= 0); 915136#L26 call #t~ret0 := fact(~n - 1);< 915999#$Ultimate##0 ~n := #in~n; 916000#L25 assume !(~n <= 0); 915136#L26 call #t~ret0 := fact(~n - 1);< 915999#$Ultimate##0 ~n := #in~n; 916002#L25 assume ~n <= 0;#res := 1; 916001#factFINAL assume true; 915998#factEXIT >#66#return; 915997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915995#factFINAL assume true; 915912#factEXIT >#66#return; 915910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915908#factFINAL assume true; 915867#factEXIT >#66#return; 915866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915863#factFINAL assume true; 915835#factEXIT >#66#return; 915836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918071#factFINAL assume true; 918042#factEXIT >#68#return; 914896#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914929#$Ultimate##0 ~n := #in~n; 914922#L25 assume ~n <= 0;#res := 1; 914921#factFINAL assume true; 914885#factEXIT >#70#return; 914912#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917756#$Ultimate##0 ~n := #in~n; 918142#L25 assume !(~n <= 0); 918032#L26 call #t~ret0 := fact(~n - 1);< 918133#$Ultimate##0 ~n := #in~n; 918147#L25 assume !(~n <= 0); 918044#L26 call #t~ret0 := fact(~n - 1);< 918185#$Ultimate##0 ~n := #in~n; 918202#L25 assume !(~n <= 0); 918181#L26 call #t~ret0 := fact(~n - 1);< 918199#$Ultimate##0 ~n := #in~n; 918221#L25 assume ~n <= 0;#res := 1; 918224#factFINAL assume true; 918206#factEXIT >#66#return; 918204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918203#factFINAL assume true; 918196#factEXIT >#66#return; 918195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918194#factFINAL assume true; 918180#factEXIT >#66#return; 918046#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918170#factFINAL assume true; 918024#factEXIT >#72#return; 918018#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918022#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 918021#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918009#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918007#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917991#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 918000#$Ultimate##0 ~n := #in~n; 918229#L25 assume !(~n <= 0); 914767#L26 call #t~ret0 := fact(~n - 1);< 918053#$Ultimate##0 ~n := #in~n; 918175#L25 assume !(~n <= 0); 914763#L26 call #t~ret0 := fact(~n - 1);< 918124#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918141#L25 assume ~n <= 0;#res := 1; 918140#factFINAL assume true; 918134#factEXIT >#66#return; 918131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918130#factFINAL assume true; 918122#factEXIT >#66#return; 918120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918109#factFINAL assume true; 918066#factEXIT >#66#return; 918064#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918060#factFINAL assume true; 918058#factEXIT >#66#return; 918059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918056#factFINAL assume true; 918051#factEXIT >#66#return; 918050#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918003#factFINAL assume true; 917989#factEXIT >#68#return; 917950#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914834#$Ultimate##0 ~n := #in~n; 918049#L25 assume ~n <= 0;#res := 1; 917980#factFINAL assume true; 917947#factEXIT >#70#return; 917935#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917946#$Ultimate##0 ~n := #in~n; 917988#L25 assume !(~n <= 0); 916611#L26 call #t~ret0 := fact(~n - 1);< 916743#$Ultimate##0 ~n := #in~n; 918976#L25 assume !(~n <= 0); 916584#L26 call #t~ret0 := fact(~n - 1);< 916604#$Ultimate##0 ~n := #in~n; 917058#L25 assume !(~n <= 0); 916729#L26 call #t~ret0 := fact(~n - 1);< 916736#$Ultimate##0 ~n := #in~n; 918245#L25 assume !(~n <= 0); 914830#L26 call #t~ret0 := fact(~n - 1);< 916955#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917984#factFINAL assume true; 917933#factEXIT >#72#return; 917887#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917886#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 917885#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917883#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917882#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917814#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917866#$Ultimate##0 ~n := #in~n; 918037#L25 assume !(~n <= 0); 916595#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917884#factFINAL assume true; 917881#factEXIT >#68#return; 917409#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917616#$Ultimate##0 ~n := #in~n; 917667#L25 assume !(~n <= 0); 916583#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917659#factFINAL assume true; 917292#factEXIT >#70#return; 916976#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917643#$Ultimate##0 ~n := #in~n; 917628#L25 assume ~n <= 0;#res := 1; 916964#factFINAL assume true; 917106#factEXIT >#72#return; 917246#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 917880#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 917879#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 917878#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 917870#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917821#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917866#$Ultimate##0 ~n := #in~n; 918037#L25 assume !(~n <= 0); 916595#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916603#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917884#factFINAL assume true; 917881#factEXIT >#68#return; 917433#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917616#$Ultimate##0 ~n := #in~n; 917667#L25 assume !(~n <= 0); 916583#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917865#factFINAL assume true; 917761#factEXIT >#70#return; 917161#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917290#$Ultimate##0 ~n := #in~n; 918168#L25 assume ~n <= 0;#res := 1; 916964#factFINAL assume true; 917106#factEXIT >#72#return; 917259#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918514#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 918511#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918501#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918502#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916207#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916465#$Ultimate##0 ~n := #in~n; 918251#L25 assume !(~n <= 0); 916590#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#74#return; 916211#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916460#$Ultimate##0 ~n := #in~n; 917077#L25 assume !(~n <= 0); 916588#L26 call #t~ret0 := fact(~n - 1);< 916737#$Ultimate##0 ~n := #in~n; 917096#L25 assume !(~n <= 0); 916730#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#76#return; 916481#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916515#$Ultimate##0 ~n := #in~n; 918236#L25 assume !(~n <= 0); 916614#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#78#return; 916512#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919260#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919259#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919258#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 919257#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916560#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916606#factFINAL assume true; 916519#factEXIT >#74#return; 916029#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916460#$Ultimate##0 ~n := #in~n; 917077#L25 assume !(~n <= 0); 916588#L26 call #t~ret0 := fact(~n - 1);< 916737#$Ultimate##0 ~n := #in~n; 917096#L25 assume !(~n <= 0); 916730#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#76#return; 916092#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916518#$Ultimate##0 ~n := #in~n; 918235#L25 assume !(~n <= 0); 916581#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#78#return; 917089#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919252#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919251#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919250#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 919249#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916535#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916606#factFINAL assume true; 916519#factEXIT >#74#return; 916184#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916460#$Ultimate##0 ~n := #in~n; 917077#L25 assume !(~n <= 0); 916588#L26 call #t~ret0 := fact(~n - 1);< 916737#$Ultimate##0 ~n := #in~n; 917096#L25 assume !(~n <= 0); 916730#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#76#return; 916202#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916518#$Ultimate##0 ~n := #in~n; 918235#L25 assume !(~n <= 0); 916581#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916733#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916956#factFINAL assume true; 916945#factEXIT >#78#return; 916436#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918492#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 918493#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918486#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918487#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916546#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918316#factFINAL assume true; 918306#factEXIT >#66#return; 918307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918400#factFINAL assume true; 918387#factEXIT >#66#return; 918334#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918333#factFINAL assume true; 918323#factEXIT >#66#return; 918325#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918471#factFINAL assume true; 918468#factEXIT >#66#return; 918406#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918498#factFINAL assume true; 918405#factEXIT >#66#return; 918402#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918398#factFINAL assume true; 918312#factEXIT >#74#return; 916298#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916460#$Ultimate##0 ~n := #in~n; 917077#L25 assume !(~n <= 0); 916588#L26 call #t~ret0 := fact(~n - 1);< 916737#$Ultimate##0 ~n := #in~n; 917096#L25 assume !(~n <= 0); 916730#L26 call #t~ret0 := fact(~n - 1);< 916953#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#76#return; 916318#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917619#$Ultimate##0 ~n := #in~n; 918240#L25 assume !(~n <= 0); 916587#L26 call #t~ret0 := fact(~n - 1);< 917661#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#78#return; 916427#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919247#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918273#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915737#L30-5 [2023-02-17 09:44:07,561 INFO L750 eck$LassoCheckResult]: Loop: 915737#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914726#$Ultimate##0 ~n := #in~n; 915972#L25 assume !(~n <= 0); 915813#L26 call #t~ret0 := fact(~n - 1);< 915927#$Ultimate##0 ~n := #in~n; 916463#L25 assume !(~n <= 0); 915811#L26 call #t~ret0 := fact(~n - 1);< 915891#$Ultimate##0 ~n := #in~n; 918458#L25 assume !(~n <= 0); 915808#L26 call #t~ret0 := fact(~n - 1);< 915893#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 915971#L25 assume !(~n <= 0); 915823#L26 call #t~ret0 := fact(~n - 1);< 915964#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915939#factFINAL assume true; 915901#factEXIT >#66#return; 915899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915898#factFINAL assume true; 915882#factEXIT >#66#return; 915887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915890#factFINAL assume true; 915851#factEXIT >#66#return; 915854#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916011#factFINAL assume true; 916006#factEXIT >#66#return; 916005#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916004#factFINAL assume true; 915936#factEXIT >#66#return; 915935#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915926#factFINAL assume true; 915921#factEXIT >#66#return; 915871#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915870#factFINAL assume true; 915864#factEXIT >#66#return; 915865#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915787#factFINAL assume true; 915788#factEXIT >#74#return; 915773#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 915778#$Ultimate##0 ~n := #in~n; 916461#L25 assume !(~n <= 0); 915883#L26 call #t~ret0 := fact(~n - 1);< 915888#$Ultimate##0 ~n := #in~n; 915968#L25 assume !(~n <= 0); 915902#L26 call #t~ret0 := fact(~n - 1);< 915907#$Ultimate##0 ~n := #in~n; 915979#L25 assume !(~n <= 0); 915944#L26 call #t~ret0 := fact(~n - 1);< 915946#$Ultimate##0 ~n := #in~n; 918234#L25 assume !(~n <= 0); 914838#L26 call #t~ret0 := fact(~n - 1);< 914837#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915939#factFINAL assume true; 915901#factEXIT >#66#return; 915899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915898#factFINAL assume true; 915882#factEXIT >#66#return; 915844#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915795#factFINAL assume true; 915766#factEXIT >#76#return; 915732#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 914849#$Ultimate##0 ~n := #in~n; 915858#L25 assume !(~n <= 0); 915853#L26 call #t~ret0 := fact(~n - 1);< 915856#$Ultimate##0 ~n := #in~n; 915965#L25 assume !(~n <= 0); 915852#L26 call #t~ret0 := fact(~n - 1);< 915892#$Ultimate##0 ~n := #in~n; 915895#L25 assume !(~n <= 0); 915886#L26 call #t~ret0 := fact(~n - 1);< 915894#$Ultimate##0 ~n := #in~n; 918233#L25 assume !(~n <= 0); 915904#L26 call #t~ret0 := fact(~n - 1);< 915947#$Ultimate##0 ~n := #in~n; 918232#L25 assume !(~n <= 0); 915943#L26 call #t~ret0 := fact(~n - 1);< 915962#$Ultimate##0 ~n := #in~n; 914839#L25 assume ~n <= 0;#res := 1; 915991#factFINAL assume true; 915961#factEXIT >#66#return; 915959#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915956#factFINAL assume true; 915942#factEXIT >#66#return; 915940#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915939#factFINAL assume true; 915901#factEXIT >#66#return; 915899#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915898#factFINAL assume true; 915882#factEXIT >#66#return; 915887#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915890#factFINAL assume true; 915851#factEXIT >#66#return; 915849#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915846#factFINAL assume true; 915796#factEXIT >#78#return; 915763#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919240#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919239#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919238#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 919237#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 919236#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 919209#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918160#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 914924#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 914928#$Ultimate##0 ~n := #in~n; 915141#L25 assume !(~n <= 0); 915135#L26 call #t~ret0 := fact(~n - 1);< 915706#$Ultimate##0 ~n := #in~n; 916008#L25 assume !(~n <= 0); 915133#L26 call #t~ret0 := fact(~n - 1);< 915914#$Ultimate##0 ~n := #in~n; 916000#L25 assume !(~n <= 0); 915136#L26 call #t~ret0 := fact(~n - 1);< 915999#$Ultimate##0 ~n := #in~n; 916000#L25 assume !(~n <= 0); 915136#L26 call #t~ret0 := fact(~n - 1);< 915999#$Ultimate##0 ~n := #in~n; 916002#L25 assume ~n <= 0;#res := 1; 916001#factFINAL assume true; 915998#factEXIT >#66#return; 915997#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915995#factFINAL assume true; 915912#factEXIT >#66#return; 915910#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915908#factFINAL assume true; 915867#factEXIT >#66#return; 915866#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 915863#factFINAL assume true; 915835#factEXIT >#66#return; 915836#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918071#factFINAL assume true; 918042#factEXIT >#68#return; 914895#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914929#$Ultimate##0 ~n := #in~n; 914922#L25 assume ~n <= 0;#res := 1; 914921#factFINAL assume true; 914885#factEXIT >#70#return; 914911#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917756#$Ultimate##0 ~n := #in~n; 918142#L25 assume !(~n <= 0); 918032#L26 call #t~ret0 := fact(~n - 1);< 918133#$Ultimate##0 ~n := #in~n; 918147#L25 assume !(~n <= 0); 918044#L26 call #t~ret0 := fact(~n - 1);< 918185#$Ultimate##0 ~n := #in~n; 918202#L25 assume !(~n <= 0); 918181#L26 call #t~ret0 := fact(~n - 1);< 918199#$Ultimate##0 ~n := #in~n; 918220#L25 assume !(~n <= 0); 918198#L26 call #t~ret0 := fact(~n - 1);< 918208#$Ultimate##0 ~n := #in~n; 918211#L25 assume !(~n <= 0); 918207#L26 call #t~ret0 := fact(~n - 1);< 918210#$Ultimate##0 ~n := #in~n; 918221#L25 assume ~n <= 0;#res := 1; 918224#factFINAL assume true; 918206#factEXIT >#66#return; 918204#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918203#factFINAL assume true; 918196#factEXIT >#66#return; 918195#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918194#factFINAL assume true; 918180#factEXIT >#66#return; 918143#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918132#factFINAL assume true; 918043#factEXIT >#66#return; 918041#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918038#factFINAL assume true; 918026#factEXIT >#66#return; 918025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918023#factFINAL assume true; 918010#factEXIT >#72#return; 918020#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918829#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 918830#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918825#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918826#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917999#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 918000#$Ultimate##0 ~n := #in~n; 918229#L25 assume !(~n <= 0); 914767#L26 call #t~ret0 := fact(~n - 1);< 918053#$Ultimate##0 ~n := #in~n; 918175#L25 assume !(~n <= 0); 914763#L26 call #t~ret0 := fact(~n - 1);< 918124#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918139#L25 assume !(~n <= 0); 914760#L26 call #t~ret0 := fact(~n - 1);< 918136#$Ultimate##0 ~n := #in~n; 918141#L25 assume ~n <= 0;#res := 1; 918140#factFINAL assume true; 918134#factEXIT >#66#return; 918131#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918130#factFINAL assume true; 918122#factEXIT >#66#return; 918120#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918109#factFINAL assume true; 918066#factEXIT >#66#return; 918064#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918060#factFINAL assume true; 918058#factEXIT >#66#return; 918059#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918056#factFINAL assume true; 918051#factEXIT >#66#return; 918052#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918630#factFINAL assume true; 918627#factEXIT >#66#return; 918628#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918629#factFINAL assume true; 918626#factEXIT >#66#return; 918624#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918622#factFINAL assume true; 918619#factEXIT >#68#return; 917956#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 914834#$Ultimate##0 ~n := #in~n; 918049#L25 assume ~n <= 0;#res := 1; 917980#factFINAL assume true; 917947#factEXIT >#70#return; 914771#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 914772#$Ultimate##0 ~n := #in~n; 918886#L25 assume !(~n <= 0); 914797#L26 call #t~ret0 := fact(~n - 1);< 914801#$Ultimate##0 ~n := #in~n; 918462#L25 assume !(~n <= 0); 916741#L26 call #t~ret0 := fact(~n - 1);< 918302#$Ultimate##0 ~n := #in~n; 918252#L25 assume !(~n <= 0); 916612#L26 call #t~ret0 := fact(~n - 1);< 916743#$Ultimate##0 ~n := #in~n; 918976#L25 assume !(~n <= 0); 916584#L26 call #t~ret0 := fact(~n - 1);< 916604#$Ultimate##0 ~n := #in~n; 917058#L25 assume !(~n <= 0); 916729#L26 call #t~ret0 := fact(~n - 1);< 916736#$Ultimate##0 ~n := #in~n; 918245#L25 assume !(~n <= 0); 914830#L26 call #t~ret0 := fact(~n - 1);< 916955#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918316#factFINAL assume true; 918306#factEXIT >#66#return; 918308#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918616#factFINAL assume true; 918614#factEXIT >#72#return; 917929#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919103#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 919101#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919100#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 919098#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917859#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917866#$Ultimate##0 ~n := #in~n; 918037#L25 assume !(~n <= 0); 916595#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918541#factFINAL assume true; 918540#factEXIT >#68#return; 917609#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917616#$Ultimate##0 ~n := #in~n; 917667#L25 assume !(~n <= 0); 916583#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916951#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917659#factFINAL assume true; 917292#factEXIT >#70#return; 916830#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 918167#$Ultimate##0 ~n := #in~n; 918249#L25 assume !(~n <= 0); 916575#L26 call #t~ret0 := fact(~n - 1);< 916744#$Ultimate##0 ~n := #in~n; 918955#L25 assume !(~n <= 0); 916567#L26 call #t~ret0 := fact(~n - 1);< 916952#$Ultimate##0 ~n := #in~n; 917065#L25 assume !(~n <= 0); 916586#L26 call #t~ret0 := fact(~n - 1);< 917055#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918367#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918596#factFINAL assume true; 918591#factEXIT >#72#return; 918592#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919170#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 919166#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919165#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 919164#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917769#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917866#$Ultimate##0 ~n := #in~n; 918037#L25 assume !(~n <= 0); 916595#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918368#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918541#factFINAL assume true; 918540#factEXIT >#68#return; 917340#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917616#$Ultimate##0 ~n := #in~n; 917667#L25 assume !(~n <= 0); 916583#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917865#factFINAL assume true; 917761#factEXIT >#70#return; 916778#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 918101#$Ultimate##0 ~n := #in~n; 918258#L25 assume !(~n <= 0); 916579#L26 call #t~ret0 := fact(~n - 1);< 916723#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916621#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917676#factFINAL assume true; 917669#factEXIT >#72#return; 917217#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919162#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 919161#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919159#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 919156#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 917781#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 917866#$Ultimate##0 ~n := #in~n; 918037#L25 assume !(~n <= 0); 916595#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918145#factFINAL assume true; 918144#factEXIT >#68#return; 917481#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 917616#$Ultimate##0 ~n := #in~n; 917667#L25 assume !(~n <= 0); 916583#L26 call #t~ret0 := fact(~n - 1);< 916622#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 918973#L25 assume !(~n <= 0); 914826#L26 call #t~ret0 := fact(~n - 1);< 917054#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917865#factFINAL assume true; 917761#factEXIT >#70#return; 916652#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 918238#$Ultimate##0 ~n := #in~n; 918237#L25 assume ~n <= 0;#res := 1; 916964#factFINAL assume true; 917106#factEXIT >#72#return; 917230#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919155#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 919154#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919153#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 919132#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916286#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916465#$Ultimate##0 ~n := #in~n; 918251#L25 assume !(~n <= 0); 916590#L26 call #t~ret0 := fact(~n - 1);< 917888#$Ultimate##0 ~n := #in~n; 918465#L25 assume !(~n <= 0); 916591#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#74#return; 916394#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916466#$Ultimate##0 ~n := #in~n; 918977#L25 assume !(~n <= 0); 916589#L26 call #t~ret0 := fact(~n - 1);< 916604#$Ultimate##0 ~n := #in~n; 917058#L25 assume !(~n <= 0); 916729#L26 call #t~ret0 := fact(~n - 1);< 916736#$Ultimate##0 ~n := #in~n; 918245#L25 assume !(~n <= 0); 914830#L26 call #t~ret0 := fact(~n - 1);< 916955#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#76#return; 916412#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 916515#$Ultimate##0 ~n := #in~n; 918236#L25 assume !(~n <= 0); 916614#L26 call #t~ret0 := fact(~n - 1);< 916623#$Ultimate##0 ~n := #in~n; 916739#L25 assume ~n <= 0;#res := 1; 916627#factFINAL assume true; 916613#factEXIT >#66#return; 916605#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916517#factFINAL assume true; 916467#factEXIT >#78#return; 916504#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918872#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 918873#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918868#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918869#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916533#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918364#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918311#factFINAL assume true; 918301#factEXIT >#74#return; 916162#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916466#$Ultimate##0 ~n := #in~n; 918977#L25 assume !(~n <= 0); 916589#L26 call #t~ret0 := fact(~n - 1);< 916604#$Ultimate##0 ~n := #in~n; 917058#L25 assume !(~n <= 0); 916729#L26 call #t~ret0 := fact(~n - 1);< 916736#$Ultimate##0 ~n := #in~n; 918245#L25 assume !(~n <= 0); 914830#L26 call #t~ret0 := fact(~n - 1);< 916955#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#76#return; 916430#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 917625#$Ultimate##0 ~n := #in~n; 917623#L25 assume !(~n <= 0); 914832#L26 call #t~ret0 := fact(~n - 1);< 916967#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916949#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 917618#factFINAL assume true; 917084#factEXIT >#78#return; 917085#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919019#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919018#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919017#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918669#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916548#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918316#factFINAL assume true; 918306#factEXIT >#66#return; 918307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918400#factFINAL assume true; 918387#factEXIT >#66#return; 918334#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918333#factFINAL assume true; 918323#factEXIT >#66#return; 918322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918321#factFINAL assume true; 918319#factEXIT >#74#return; 916269#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916466#$Ultimate##0 ~n := #in~n; 918977#L25 assume !(~n <= 0); 916589#L26 call #t~ret0 := fact(~n - 1);< 916604#$Ultimate##0 ~n := #in~n; 917058#L25 assume !(~n <= 0); 916729#L26 call #t~ret0 := fact(~n - 1);< 916736#$Ultimate##0 ~n := #in~n; 918245#L25 assume !(~n <= 0); 914830#L26 call #t~ret0 := fact(~n - 1);< 916955#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#76#return; 916329#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 918242#$Ultimate##0 ~n := #in~n; 918318#L25 assume !(~n <= 0); 916593#L26 call #t~ret0 := fact(~n - 1);< 916723#$Ultimate##0 ~n := #in~n; 918243#L25 assume !(~n <= 0); 916569#L26 call #t~ret0 := fact(~n - 1);< 917052#$Ultimate##0 ~n := #in~n; 917065#L25 assume !(~n <= 0); 916586#L26 call #t~ret0 := fact(~n - 1);< 917055#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#78#return; 916451#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 918991#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 918989#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 918978#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918972#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 916520#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 916564#$Ultimate##0 ~n := #in~n; 918239#L25 assume !(~n <= 0); 916717#L26 call #t~ret0 := fact(~n - 1);< 918474#$Ultimate##0 ~n := #in~n; 918473#L25 assume !(~n <= 0); 916596#L26 call #t~ret0 := fact(~n - 1);< 918472#$Ultimate##0 ~n := #in~n; 918470#L25 assume !(~n <= 0); 916597#L26 call #t~ret0 := fact(~n - 1);< 916815#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 918466#L25 assume !(~n <= 0); 916599#L26 call #t~ret0 := fact(~n - 1);< 918317#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916600#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916740#factFINAL assume true; 916714#factEXIT >#66#return; 916720#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918370#factFINAL assume true; 918365#factEXIT >#66#return; 918366#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918316#factFINAL assume true; 918306#factEXIT >#66#return; 918307#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918400#factFINAL assume true; 918387#factEXIT >#66#return; 918334#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918333#factFINAL assume true; 918323#factEXIT >#66#return; 918322#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 918321#factFINAL assume true; 918319#factEXIT >#74#return; 916062#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 916466#$Ultimate##0 ~n := #in~n; 918977#L25 assume !(~n <= 0); 916589#L26 call #t~ret0 := fact(~n - 1);< 916604#$Ultimate##0 ~n := #in~n; 917058#L25 assume !(~n <= 0); 916729#L26 call #t~ret0 := fact(~n - 1);< 916736#$Ultimate##0 ~n := #in~n; 918245#L25 assume !(~n <= 0); 914830#L26 call #t~ret0 := fact(~n - 1);< 916955#$Ultimate##0 ~n := #in~n; 914825#L25 assume !(~n <= 0); 914827#L26 call #t~ret0 := fact(~n - 1);< 914840#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#76#return; 916319#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 918242#$Ultimate##0 ~n := #in~n; 918318#L25 assume !(~n <= 0); 916593#L26 call #t~ret0 := fact(~n - 1);< 916723#$Ultimate##0 ~n := #in~n; 918243#L25 assume !(~n <= 0); 916569#L26 call #t~ret0 := fact(~n - 1);< 917052#$Ultimate##0 ~n := #in~n; 917065#L25 assume !(~n <= 0); 916586#L26 call #t~ret0 := fact(~n - 1);< 917055#$Ultimate##0 ~n := #in~n; 918262#L25 assume !(~n <= 0); 916728#L26 call #t~ret0 := fact(~n - 1);< 917053#$Ultimate##0 ~n := #in~n; 914841#L25 assume ~n <= 0;#res := 1; 917056#factFINAL assume true; 917051#factEXIT >#66#return; 917048#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916966#factFINAL assume true; 916948#factEXIT >#66#return; 916947#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916814#factFINAL assume true; 916727#factEXIT >#66#return; 916626#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916610#factFINAL assume true; 916565#factEXIT >#66#return; 916516#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 916464#factFINAL assume true; 916025#factEXIT >#78#return; 916427#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 919247#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 919245#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 919243#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 918273#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 915737#L30-5 [2023-02-17 09:44:07,561 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:44:07,562 INFO L85 PathProgramCache]: Analyzing trace with hash 659029951, now seen corresponding path program 57 times [2023-02-17 09:44:07,562 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:44:07,562 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1289358237] [2023-02-17 09:44:07,562 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:44:07,562 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:44:07,601 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:44:07,601 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [851401554] [2023-02-17 09:44:07,601 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:44:07,601 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:44:07,601 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:44:07,604 INFO L229 MonitoredProcess]: Starting monitored process 263 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:44:07,604 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (263)] Waiting until timeout for monitored process [2023-02-17 09:44:08,998 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 14 check-sat command(s) [2023-02-17 09:44:08,998 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:44:09,004 INFO L263 TraceCheckSpWp]: Trace formula consists of 933 conjuncts, 21 conjunts are in the unsatisfiable core [2023-02-17 09:44:09,013 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:44:09,095 INFO L134 CoverageAnalysis]: Checked inductivity of 231910 backedges. 85792 proven. 1378 refuted. 0 times theorem prover too weak. 144740 trivial. 0 not checked. [2023-02-17 09:44:09,096 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:44:09,285 INFO L134 CoverageAnalysis]: Checked inductivity of 231910 backedges. 7082 proven. 3368 refuted. 0 times theorem prover too weak. 221460 trivial. 0 not checked. [2023-02-17 09:44:09,286 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:44:09,286 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1289358237] [2023-02-17 09:44:09,286 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:44:09,286 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [851401554] [2023-02-17 09:44:09,286 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [851401554] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:44:09,286 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:44:09,286 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 20] total 23 [2023-02-17 09:44:09,286 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [605040388] [2023-02-17 09:44:09,287 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:44:09,287 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:44:09,287 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:44:09,287 INFO L85 PathProgramCache]: Analyzing trace with hash -615577292, now seen corresponding path program 51 times [2023-02-17 09:44:09,287 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:44:09,287 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [236454225] [2023-02-17 09:44:09,287 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:44:09,288 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:44:09,316 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:44:09,316 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2114107507] [2023-02-17 09:44:09,316 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2023-02-17 09:44:09,316 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:44:09,316 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:44:09,321 INFO L229 MonitoredProcess]: Starting monitored process 264 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:44:09,322 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (264)] Waiting until timeout for monitored process [2023-02-17 09:44:10,698 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 19 check-sat command(s) [2023-02-17 09:44:10,698 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:44:10,701 INFO L263 TraceCheckSpWp]: Trace formula consists of 440 conjuncts, 41 conjunts are in the unsatisfiable core [2023-02-17 09:44:10,705 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:44:10,810 INFO L134 CoverageAnalysis]: Checked inductivity of 66113 backedges. 11866 proven. 509 refuted. 0 times theorem prover too weak. 53738 trivial. 0 not checked. [2023-02-17 09:44:10,810 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:44:11,278 INFO L134 CoverageAnalysis]: Checked inductivity of 66113 backedges. 11866 proven. 637 refuted. 0 times theorem prover too weak. 53610 trivial. 0 not checked. [2023-02-17 09:44:11,278 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:44:11,278 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [236454225] [2023-02-17 09:44:11,278 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:44:11,278 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2114107507] [2023-02-17 09:44:11,278 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2114107507] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:44:11,278 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:44:11,279 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 32] total 35 [2023-02-17 09:44:11,279 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [218286626] [2023-02-17 09:44:11,279 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:44:11,279 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:44:11,279 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:44:11,280 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2023-02-17 09:44:11,280 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=189, Invalid=1001, Unknown=0, NotChecked=0, Total=1190 [2023-02-17 09:44:11,280 INFO L87 Difference]: Start difference. First operand 4542 states and 10674 transitions. cyclomatic complexity: 6170 Second operand has 35 states, 32 states have (on average 2.5625) internal successors, (82), 32 states have internal predecessors, (82), 19 states have call successors, (25), 1 states have call predecessors, (25), 15 states have return successors, (37), 18 states have call predecessors, (37), 19 states have call successors, (37) [2023-02-17 09:44:12,571 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2023-02-17 09:44:12,572 INFO L93 Difference]: Finished difference Result 5616 states and 12510 transitions. [2023-02-17 09:44:12,572 INFO L82 GeneralOperation]: Start removeNonLiveStates. Operand 5616 states and 12510 transitions. [2023-02-17 09:44:12,612 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 1819 [2023-02-17 09:44:12,665 INFO L88 GeneralOperation]: Finished removeNonLiveStates. Reduced from 5616 states to 5521 states and 12280 transitions. [2023-02-17 09:44:12,665 INFO L87 BuchiClosureNwa]: Accepting states before buchiClosure: 783 [2023-02-17 09:44:12,666 INFO L106 BuchiClosureNwa]: Accepting states after buchiClosure: 783 [2023-02-17 09:44:12,666 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5521 states and 12280 transitions. [2023-02-17 09:44:12,666 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is not deterministic. [2023-02-17 09:44:12,666 INFO L218 hiAutomatonCegarLoop]: Abstraction has 5521 states and 12280 transitions. [2023-02-17 09:44:12,668 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 5521 states and 12280 transitions. [2023-02-17 09:44:12,754 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 5521 to 4479. [2023-02-17 09:44:12,758 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4479 states, 2385 states have (on average 1.0419287211740043) internal successors, (2485), 2359 states have internal predecessors, (2485), 1832 states have call successors, (1854), 338 states have call predecessors, (1854), 262 states have return successors, (6014), 1781 states have call predecessors, (6014), 1832 states have call successors, (6014) [2023-02-17 09:44:12,779 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4479 states to 4479 states and 10353 transitions. [2023-02-17 09:44:12,779 INFO L240 hiAutomatonCegarLoop]: Abstraction has 4479 states and 10353 transitions. [2023-02-17 09:44:12,779 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2023-02-17 09:44:12,780 INFO L428 stractBuchiCegarLoop]: Abstraction has 4479 states and 10353 transitions. [2023-02-17 09:44:12,780 INFO L335 stractBuchiCegarLoop]: ======== Iteration 81 ============ [2023-02-17 09:44:12,780 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand 4479 states and 10353 transitions. [2023-02-17 09:44:12,795 INFO L131 ngComponentsAnalysis]: Automaton has 3 accepting balls. 1448 [2023-02-17 09:44:12,795 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2023-02-17 09:44:12,795 INFO L119 BuchiIsEmpty]: Starting construction of run [2023-02-17 09:44:12,802 INFO L148 hiAutomatonCegarLoop]: Counterexample stem histogram [302, 302, 215, 215, 215, 215, 87, 30, 29, 20, 19, 19, 19, 19, 19, 19, 19, 19, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 3, 3, 1, 1, 1, 1] [2023-02-17 09:44:12,802 INFO L149 hiAutomatonCegarLoop]: Counterexample loop histogram [161, 161, 131, 131, 131, 131, 30, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1] [2023-02-17 09:44:12,802 INFO L748 eck$LassoCheckResult]: Stem: 942249#$Ultimate##0 assume { :begin_inline_ULTIMATE.init } true; 942190#L-1 assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet4#1, main_#t~nondet5#1, main_#t~nondet6#1, main_#t~ret9#1, main_#t~ret10#1, main_#t~post8#1, main_~k~0#1, main_#t~post7#1, main_~n~0#1, main_~x~0#1, main_~y~0#1, main_~z~0#1;main_~x~0#1 := main_#t~nondet4#1;havoc main_#t~nondet4#1; 942191#L35 assume !(main_~x~0#1 < 0);main_~y~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; 942211#L38 assume !(main_~y~0#1 < 0);main_~z~0#1 := main_#t~nondet6#1;havoc main_#t~nondet6#1;main_~n~0#1 := 0; 942250#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 942823#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942822#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942818#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942819#$Ultimate##0 ~n := #in~n; 942824#L25 assume ~n <= 0;#res := 1; 942821#factFINAL assume true; 942817#factEXIT >#68#return; 942813#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942814#$Ultimate##0 ~n := #in~n; 942820#L25 assume ~n <= 0;#res := 1; 942816#factFINAL assume true; 942812#factEXIT >#70#return; 942809#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942810#$Ultimate##0 ~n := #in~n; 942815#L25 assume ~n <= 0;#res := 1; 942811#factFINAL assume true; 942808#factEXIT >#72#return; 942807#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942806#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 942804#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942803#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942800#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942790#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942791#$Ultimate##0 ~n := #in~n; 942799#L25 assume !(~n <= 0); 942793#L26 call #t~ret0 := fact(~n - 1);< 942796#$Ultimate##0 ~n := #in~n; 942805#L25 assume ~n <= 0;#res := 1; 942801#factFINAL assume true; 942792#factEXIT >#66#return; 942795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942797#factFINAL assume true; 942789#factEXIT >#74#return; 942783#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942784#$Ultimate##0 ~n := #in~n; 942798#L25 assume ~n <= 0;#res := 1; 942787#factFINAL assume true; 942782#factEXIT >#76#return; 942780#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942781#$Ultimate##0 ~n := #in~n; 942802#L25 assume !(~n <= 0); 942794#L26 call #t~ret0 := fact(~n - 1);< 942796#$Ultimate##0 ~n := #in~n; 942805#L25 assume ~n <= 0;#res := 1; 942801#factFINAL assume true; 942792#factEXIT >#66#return; 942788#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942786#factFINAL assume true; 942779#factEXIT >#78#return; 942778#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942777#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 942774#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942764#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942759#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942729#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942731#$Ultimate##0 ~n := #in~n; 942743#L25 assume !(~n <= 0); 942739#L26 call #t~ret0 := fact(~n - 1);< 942740#$Ultimate##0 ~n := #in~n; 942758#L25 assume !(~n <= 0); 942738#L26 call #t~ret0 := fact(~n - 1);< 942751#$Ultimate##0 ~n := #in~n; 942776#L25 assume ~n <= 0;#res := 1; 942773#factFINAL assume true; 942766#factEXIT >#66#return; 942765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942755#factFINAL assume true; 942747#factEXIT >#66#return; 942750#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942775#factFINAL assume true; 942772#factEXIT >#74#return; 942762#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942763#$Ultimate##0 ~n := #in~n; 942771#L25 assume ~n <= 0;#res := 1; 942769#factFINAL assume true; 942761#factEXIT >#76#return; 942753#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942754#$Ultimate##0 ~n := #in~n; 942757#L25 assume !(~n <= 0); 942748#L26 call #t~ret0 := fact(~n - 1);< 942756#$Ultimate##0 ~n := #in~n; 942770#L25 assume !(~n <= 0); 942767#L26 call #t~ret0 := fact(~n - 1);< 942768#$Ultimate##0 ~n := #in~n; 942776#L25 assume ~n <= 0;#res := 1; 942773#factFINAL assume true; 942766#factEXIT >#66#return; 942765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942755#factFINAL assume true; 942747#factEXIT >#66#return; 942749#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942760#factFINAL assume true; 942752#factEXIT >#78#return; 942746#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942744#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 942741#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942736#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942734#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942730#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942731#$Ultimate##0 ~n := #in~n; 942743#L25 assume !(~n <= 0); 942739#L26 call #t~ret0 := fact(~n - 1);< 942740#$Ultimate##0 ~n := #in~n; 942758#L25 assume !(~n <= 0); 942738#L26 call #t~ret0 := fact(~n - 1);< 942751#$Ultimate##0 ~n := #in~n; 942758#L25 assume !(~n <= 0); 942738#L26 call #t~ret0 := fact(~n - 1);< 942751#$Ultimate##0 ~n := #in~n; 942776#L25 assume ~n <= 0;#res := 1; 942773#factFINAL assume true; 942766#factEXIT >#66#return; 942765#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942755#factFINAL assume true; 942747#factEXIT >#66#return; 942745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942742#factFINAL assume true; 942737#factEXIT >#66#return; 942735#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942733#factFINAL assume true; 942728#factEXIT >#74#return; 942725#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942726#$Ultimate##0 ~n := #in~n; 942732#L25 assume ~n <= 0;#res := 1; 942727#factFINAL assume true; 942724#factEXIT >#76#return; 942699#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942707#$Ultimate##0 ~n := #in~n; 942704#L25 assume !(~n <= 0); 942691#L26 call #t~ret0 := fact(~n - 1);< 942700#$Ultimate##0 ~n := #in~n; 942719#L25 assume !(~n <= 0); 942693#L26 call #t~ret0 := fact(~n - 1);< 942696#$Ultimate##0 ~n := #in~n; 942718#L25 assume !(~n <= 0); 942692#L26 call #t~ret0 := fact(~n - 1);< 942715#$Ultimate##0 ~n := #in~n; 942717#L25 assume ~n <= 0;#res := 1; 942716#factFINAL assume true; 942714#factEXIT >#66#return; 942713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942712#factFINAL assume true; 942711#factEXIT >#66#return; 942710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942709#factFINAL assume true; 942706#factEXIT >#66#return; 942695#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942720#factFINAL assume true; 942708#factEXIT >#78#return; 942705#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942702#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 942697#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942689#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942687#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942632#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942633#$Ultimate##0 ~n := #in~n; 942701#L25 assume !(~n <= 0); 942694#L26 call #t~ret0 := fact(~n - 1);< 942696#$Ultimate##0 ~n := #in~n; 942718#L25 assume !(~n <= 0); 942692#L26 call #t~ret0 := fact(~n - 1);< 942715#$Ultimate##0 ~n := #in~n; 942718#L25 assume !(~n <= 0); 942692#L26 call #t~ret0 := fact(~n - 1);< 942715#$Ultimate##0 ~n := #in~n; 942718#L25 assume !(~n <= 0); 942692#L26 call #t~ret0 := fact(~n - 1);< 942715#$Ultimate##0 ~n := #in~n; 942717#L25 assume ~n <= 0;#res := 1; 942716#factFINAL assume true; 942714#factEXIT >#66#return; 942713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942712#factFINAL assume true; 942711#factEXIT >#66#return; 942710#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942709#factFINAL assume true; 942706#factEXIT >#66#return; 942703#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942698#factFINAL assume true; 942690#factEXIT >#66#return; 942688#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942686#factFINAL assume true; 942631#factEXIT >#74#return; 942626#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942627#$Ultimate##0 ~n := #in~n; 942634#L25 assume ~n <= 0;#res := 1; 942630#factFINAL assume true; 942625#factEXIT >#76#return; 942541#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942621#$Ultimate##0 ~n := #in~n; 942619#L25 assume !(~n <= 0); 942602#L26 call #t~ret0 := fact(~n - 1);< 942617#$Ultimate##0 ~n := #in~n; 942667#L25 assume !(~n <= 0); 942601#L26 call #t~ret0 := fact(~n - 1);< 942648#$Ultimate##0 ~n := #in~n; 942666#L25 assume !(~n <= 0); 942600#L26 call #t~ret0 := fact(~n - 1);< 942663#$Ultimate##0 ~n := #in~n; 942666#L25 assume !(~n <= 0); 942600#L26 call #t~ret0 := fact(~n - 1);< 942663#$Ultimate##0 ~n := #in~n; 942669#L25 assume ~n <= 0;#res := 1; 942665#factFINAL assume true; 942662#factEXIT >#66#return; 942660#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942657#factFINAL assume true; 942655#factEXIT >#66#return; 942653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942650#factFINAL assume true; 942647#factEXIT >#66#return; 942646#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942645#factFINAL assume true; 942610#factEXIT >#66#return; 942611#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943076#factFINAL assume true; 942540#factEXIT >#78#return; 942542#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942897#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 942896#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942895#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942892#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942356#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942357#$Ultimate##0 ~n := #in~n; 942507#L25 assume !(~n <= 0); 942504#L26 call #t~ret0 := fact(~n - 1);< 942505#$Ultimate##0 ~n := #in~n; 942513#L25 assume !(~n <= 0); 942510#L26 call #t~ret0 := fact(~n - 1);< 942511#$Ultimate##0 ~n := #in~n; 942520#L25 assume !(~n <= 0); 942516#L26 call #t~ret0 := fact(~n - 1);< 942518#$Ultimate##0 ~n := #in~n; 942525#L25 assume !(~n <= 0); 942517#L26 call #t~ret0 := fact(~n - 1);< 942523#$Ultimate##0 ~n := #in~n; 942525#L25 assume !(~n <= 0); 942517#L26 call #t~ret0 := fact(~n - 1);< 942523#$Ultimate##0 ~n := #in~n; 942529#L25 assume ~n <= 0;#res := 1; 942528#factFINAL assume true; 942527#factEXIT >#66#return; 942526#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942524#factFINAL assume true; 942522#factEXIT >#66#return; 942521#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942519#factFINAL assume true; 942515#factEXIT >#66#return; 942514#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942512#factFINAL assume true; 942509#factEXIT >#66#return; 942508#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942506#factFINAL assume true; 942503#factEXIT >#66#return; 942502#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942501#factFINAL assume true; 942355#factEXIT >#74#return; 942349#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942350#$Ultimate##0 ~n := #in~n; 942394#L25 assume ~n <= 0;#res := 1; 942393#factFINAL assume true; 942348#factEXIT >#76#return; 942219#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942376#$Ultimate##0 ~n := #in~n; 942372#L25 assume !(~n <= 0); 942332#L26 call #t~ret0 := fact(~n - 1);< 942368#$Ultimate##0 ~n := #in~n; 942478#L25 assume !(~n <= 0); 942330#L26 call #t~ret0 := fact(~n - 1);< 942374#$Ultimate##0 ~n := #in~n; 942468#L25 assume !(~n <= 0); 942329#L26 call #t~ret0 := fact(~n - 1);< 942404#$Ultimate##0 ~n := #in~n; 942476#L25 assume !(~n <= 0); 942326#L26 call #t~ret0 := fact(~n - 1);< 942423#$Ultimate##0 ~n := #in~n; 942475#L25 assume !(~n <= 0); 942325#L26 call #t~ret0 := fact(~n - 1);< 942473#$Ultimate##0 ~n := #in~n; 942480#L25 assume ~n <= 0;#res := 1; 942479#factFINAL assume true; 942472#factEXIT >#66#return; 942469#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942467#factFINAL assume true; 942422#factEXIT >#66#return; 942421#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942416#factFINAL assume true; 942403#factEXIT >#66#return; 942381#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942377#factFINAL assume true; 942373#factEXIT >#66#return; 942370#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942369#factFINAL assume true; 942367#factEXIT >#66#return; 942218#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 942220#factFINAL assume true; 942309#factEXIT >#78#return; 942308#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945051#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945050#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945049#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 945048#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 945046#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 945044#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944769#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944688#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944763#$Ultimate##0 ~n := #in~n; 944881#L25 assume !(~n <= 0); 942175#L26 call #t~ret0 := fact(~n - 1);< 944775#$Ultimate##0 ~n := #in~n; 944880#L25 assume ~n <= 0;#res := 1; 944879#factFINAL assume true; 944774#factEXIT >#66#return; 944772#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944768#factFINAL assume true; 944762#factEXIT >#68#return; 944695#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944719#$Ultimate##0 ~n := #in~n; 944970#L25 assume ~n <= 0;#res := 1; 944723#factFINAL assume true; 944684#factEXIT >#70#return; 944711#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944758#$Ultimate##0 ~n := #in~n; 944771#L25 assume !(~n <= 0); 944765#L26 call #t~ret0 := fact(~n - 1);< 944766#$Ultimate##0 ~n := #in~n; 944773#L25 assume ~n <= 0;#res := 1; 944770#factFINAL assume true; 944764#factEXIT >#66#return; 944760#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944759#factFINAL assume true; 944757#factEXIT >#72#return; 944755#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944754#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 944753#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944752#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944751#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944739#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944750#$Ultimate##0 ~n := #in~n; 945561#L25 assume !(~n <= 0); 943664#L26 call #t~ret0 := fact(~n - 1);< 943920#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944749#factFINAL assume true; 944738#factEXIT >#68#return; 942239#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942240#$Ultimate##0 ~n := #in~n; 945055#L25 assume !(~n <= 0); 943667#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944749#factFINAL assume true; 944738#factEXIT >#70#return; 944191#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944645#$Ultimate##0 ~n := #in~n; 944650#L25 assume ~n <= 0;#res := 1; 944048#factFINAL assume true; 944178#factEXIT >#72#return; 944251#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944731#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 944729#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944677#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944649#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943235#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944644#$Ultimate##0 ~n := #in~n; 944728#L25 assume !(~n <= 0); 943634#L26 call #t~ret0 := fact(~n - 1);< 943683#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#74#return; 943517#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943560#$Ultimate##0 ~n := #in~n; 944655#L25 assume !(~n <= 0); 943661#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#76#return; 943526#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943560#$Ultimate##0 ~n := #in~n; 944655#L25 assume !(~n <= 0); 943661#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#78#return; 943542#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944176#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 944174#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944172#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944170#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943252#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944053#$Ultimate##0 ~n := #in~n; 945105#L25 assume !(~n <= 0); 943643#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#74#return; 943515#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943560#$Ultimate##0 ~n := #in~n; 944655#L25 assume !(~n <= 0); 943661#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#76#return; 943546#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944165#$Ultimate##0 ~n := #in~n; 944680#L25 assume !(~n <= 0); 944033#L26 call #t~ret0 := fact(~n - 1);< 944043#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#78#return; 944153#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944151#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 944150#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944140#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944137#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943283#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944053#$Ultimate##0 ~n := #in~n; 945105#L25 assume !(~n <= 0); 943643#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#74#return; 943478#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943560#$Ultimate##0 ~n := #in~n; 944655#L25 assume !(~n <= 0); 943661#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#76#return; 943282#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943508#$Ultimate##0 ~n := #in~n; 945089#L25 assume !(~n <= 0); 943615#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#78#return; 944028#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944026#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 943712#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 943684#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 943656#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943592#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943654#factFINAL assume true; 943564#factEXIT >#74#return; 943521#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943560#$Ultimate##0 ~n := #in~n; 944655#L25 assume !(~n <= 0); 943661#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#76#return; 943301#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943508#$Ultimate##0 ~n := #in~n; 945089#L25 assume !(~n <= 0); 943615#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#78#return; 943130#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 943129#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 943128#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 943127#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 943125#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942143#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942144#$Ultimate##0 ~n := #in~n; 945348#L25 assume !(~n <= 0); 945209#L26 call #t~ret0 := fact(~n - 1);< 945283#$Ultimate##0 ~n := #in~n; 946196#L25 assume !(~n <= 0); 945208#L26 call #t~ret0 := fact(~n - 1);< 946572#$Ultimate##0 ~n := #in~n; 946571#L25 assume !(~n <= 0); 945196#L26 call #t~ret0 := fact(~n - 1);< 945238#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945227#factFINAL assume true; 945219#factEXIT >#66#return; 945215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945182#factEXIT >#66#return; 945197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945291#factFINAL assume true; 945288#factEXIT >#66#return; 945286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945282#factFINAL assume true; 945278#factEXIT >#66#return; 945279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945316#factFINAL assume true; 945153#factEXIT >#74#return; 945154#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942245#$Ultimate##0 ~n := #in~n; 945301#L25 assume !(~n <= 0); 945298#L26 call #t~ret0 := fact(~n - 1);< 945299#$Ultimate##0 ~n := #in~n; 945303#L25 assume ~n <= 0;#res := 1; 945300#factFINAL assume true; 945297#factEXIT >#66#return; 945296#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945295#factFINAL assume true; 945294#factEXIT >#76#return; 942273#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 946584#$Ultimate##0 ~n := #in~n; 946583#L25 assume !(~n <= 0); 945194#L26 call #t~ret0 := fact(~n - 1);< 946582#$Ultimate##0 ~n := #in~n; 946581#L25 assume !(~n <= 0); 945184#L26 call #t~ret0 := fact(~n - 1);< 945238#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945227#factFINAL assume true; 945219#factEXIT >#66#return; 945215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945182#factEXIT >#66#return; 945197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945291#factFINAL assume true; 945288#factEXIT >#66#return; 945286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945282#factFINAL assume true; 945278#factEXIT >#66#return; 945279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945316#factFINAL assume true; 945153#factEXIT >#78#return; 942299#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944997#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 944995#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944993#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 944991#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 944990#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 944989#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944727#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944725#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944726#$Ultimate##0 ~n := #in~n; 944977#L25 assume !(~n <= 0); 942183#L26 call #t~ret0 := fact(~n - 1);< 944975#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 945103#L25 assume ~n <= 0;#res := 1; 945101#factFINAL assume true; 945098#factEXIT >#66#return; 945095#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945091#factFINAL assume true; 944973#factEXIT >#66#return; 944972#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944971#factFINAL assume true; 944724#factEXIT >#68#return; 944693#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944719#$Ultimate##0 ~n := #in~n; 944970#L25 assume ~n <= 0;#res := 1; 944723#factFINAL assume true; 944684#factEXIT >#70#return; 944673#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944674#$Ultimate##0 ~n := #in~n; 944933#L25 assume !(~n <= 0); 944922#L26 call #t~ret0 := fact(~n - 1);< 944925#$Ultimate##0 ~n := #in~n; 944776#L25 assume !(~n <= 0); 944955#L26 call #t~ret0 := fact(~n - 1);< 944956#$Ultimate##0 ~n := #in~n; 944966#L25 assume ~n <= 0;#res := 1; 944965#factFINAL assume true; 944954#factEXIT >#66#return; 944943#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944929#factFINAL assume true; 944916#factEXIT >#66#return; 944722#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944683#factFINAL assume true; 944672#factEXIT >#72#return; 944671#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944669#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 944667#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944660#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944658#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944632#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944648#$Ultimate##0 ~n := #in~n; 944679#L25 assume !(~n <= 0); 943888#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944647#factFINAL assume true; 944312#factEXIT >#68#return; 944358#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944633#$Ultimate##0 ~n := #in~n; 944678#L25 assume !(~n <= 0); 943617#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943670#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944749#factFINAL assume true; 944738#factEXIT >#70#return; 943826#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944311#$Ultimate##0 ~n := #in~n; 944888#L25 assume !(~n <= 0); 943668#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944756#factFINAL assume true; 944744#factEXIT >#72#return; 944736#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944733#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 944732#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944676#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944675#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944400#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944648#$Ultimate##0 ~n := #in~n; 944679#L25 assume !(~n <= 0); 943888#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944647#factFINAL assume true; 944312#factEXIT >#68#return; 944386#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944633#$Ultimate##0 ~n := #in~n; 944678#L25 assume !(~n <= 0); 943617#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944647#factFINAL assume true; 944312#factEXIT >#70#return; 943882#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944311#$Ultimate##0 ~n := #in~n; 944888#L25 assume ~n <= 0;#res := 1; 944048#factFINAL assume true; 944178#factEXIT >#72#return; 944177#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 944175#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 944173#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 944171#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944169#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943191#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944053#$Ultimate##0 ~n := #in~n; 945105#L25 assume !(~n <= 0); 943643#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#74#return; 943192#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942247#$Ultimate##0 ~n := #in~n; 944634#L25 assume !(~n <= 0); 943646#L26 call #t~ret0 := fact(~n - 1);< 944041#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#76#return; 943522#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944152#$Ultimate##0 ~n := #in~n; 944141#L25 assume !(~n <= 0); 943665#L26 call #t~ret0 := fact(~n - 1);< 944135#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#78#return; 943555#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945082#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945080#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945078#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945073#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943196#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944053#$Ultimate##0 ~n := #in~n; 945105#L25 assume !(~n <= 0); 943643#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#74#return; 942246#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942247#$Ultimate##0 ~n := #in~n; 944634#L25 assume !(~n <= 0); 943646#L26 call #t~ret0 := fact(~n - 1);< 944041#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#76#return; 943527#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944152#$Ultimate##0 ~n := #in~n; 944141#L25 assume !(~n <= 0); 943665#L26 call #t~ret0 := fact(~n - 1);< 944135#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#78#return; 944155#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945287#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945285#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945281#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945280#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943572#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943654#factFINAL assume true; 943564#factEXIT >#74#return; 943194#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942247#$Ultimate##0 ~n := #in~n; 944634#L25 assume !(~n <= 0); 943646#L26 call #t~ret0 := fact(~n - 1);< 944041#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#76#return; 943203#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943508#$Ultimate##0 ~n := #in~n; 945089#L25 assume !(~n <= 0); 943615#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#78#return; 943460#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945126#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945125#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945124#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945123#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943574#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945413#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945334#factFINAL assume true; 945333#factEXIT >#74#return; 943215#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942247#$Ultimate##0 ~n := #in~n; 944634#L25 assume !(~n <= 0); 943646#L26 call #t~ret0 := fact(~n - 1);< 944041#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#76#return; 943211#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943510#$Ultimate##0 ~n := #in~n; 946536#L25 assume !(~n <= 0); 943627#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#78#return; 943462#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 946504#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 946502#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 946491#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945122#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942271#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942144#$Ultimate##0 ~n := #in~n; 945348#L25 assume !(~n <= 0); 945209#L26 call #t~ret0 := fact(~n - 1);< 945283#$Ultimate##0 ~n := #in~n; 946196#L25 assume !(~n <= 0); 945208#L26 call #t~ret0 := fact(~n - 1);< 946572#$Ultimate##0 ~n := #in~n; 946571#L25 assume !(~n <= 0); 945196#L26 call #t~ret0 := fact(~n - 1);< 945238#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945227#factFINAL assume true; 945219#factEXIT >#66#return; 945215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945182#factEXIT >#66#return; 945197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945291#factFINAL assume true; 945288#factEXIT >#66#return; 945286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945282#factFINAL assume true; 945278#factEXIT >#66#return; 945277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945273#factFINAL assume true; 945265#factEXIT >#66#return; 945264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945260#factFINAL assume true; 945258#factEXIT >#66#return; 945257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945256#factFINAL assume true; 945242#factEXIT >#66#return; 945240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945230#factFINAL assume true; 945228#factEXIT >#66#return; 945212#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945216#factFINAL assume true; 945205#factEXIT >#66#return; 945199#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945179#factFINAL assume true; 945177#factEXIT >#74#return; 945164#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 945232#$Ultimate##0 ~n := #in~n; 945274#L25 assume !(~n <= 0); 945190#L26 call #t~ret0 := fact(~n - 1);< 945247#$Ultimate##0 ~n := #in~n; 945262#L25 assume !(~n <= 0); 945221#L26 call #t~ret0 := fact(~n - 1);< 945251#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945236#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945241#factFINAL assume true; 945231#factEXIT >#76#return; 942232#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943122#$Ultimate##0 ~n := #in~n; 942225#L25 assume !(~n <= 0); 942231#L26 call #t~ret0 := fact(~n - 1);< 942241#$Ultimate##0 ~n := #in~n; 942242#L25 assume !(~n <= 0); 945185#L26 call #t~ret0 := fact(~n - 1);< 945202#$Ultimate##0 ~n := #in~n; 946580#L25 assume !(~n <= 0); 945183#L26 call #t~ret0 := fact(~n - 1);< 945225#$Ultimate##0 ~n := #in~n; 946581#L25 assume !(~n <= 0); 945184#L26 call #t~ret0 := fact(~n - 1);< 945238#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945227#factFINAL assume true; 945219#factEXIT >#66#return; 945215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945182#factEXIT >#66#return; 945197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945291#factFINAL assume true; 945288#factEXIT >#66#return; 945286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945282#factFINAL assume true; 945278#factEXIT >#66#return; 945279#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945316#factFINAL assume true; 945153#factEXIT >#78#return; 942294#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945088#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945087#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945086#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 945085#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 945084#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 945083#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 944942#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944936#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944941#$Ultimate##0 ~n := #in~n; 945035#L25 assume !(~n <= 0); 942184#L26 call #t~ret0 := fact(~n - 1);< 944975#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 945103#L25 assume ~n <= 0;#res := 1; 945101#factFINAL assume true; 945098#factEXIT >#66#return; 945095#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945091#factFINAL assume true; 944973#factEXIT >#66#return; 944974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945033#factFINAL assume true; 945028#factEXIT >#66#return; 945029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945038#factFINAL assume true; 945030#factEXIT >#66#return; 945031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945056#factFINAL assume true; 945054#factEXIT >#68#return; 944690#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944719#$Ultimate##0 ~n := #in~n; 944970#L25 assume ~n <= 0;#res := 1; 944723#factFINAL assume true; 944684#factEXIT >#70#return; 944708#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944927#$Ultimate##0 ~n := #in~n; 946064#L25 assume !(~n <= 0); 945789#L26 call #t~ret0 := fact(~n - 1);< 945827#$Ultimate##0 ~n := #in~n; 946030#L25 assume !(~n <= 0); 945816#L26 call #t~ret0 := fact(~n - 1);< 946023#$Ultimate##0 ~n := #in~n; 946033#L25 assume !(~n <= 0); 946020#L26 call #t~ret0 := fact(~n - 1);< 946029#$Ultimate##0 ~n := #in~n; 946049#L25 assume ~n <= 0;#res := 1; 946046#factFINAL assume true; 946034#factEXIT >#66#return; 946032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 946031#factFINAL assume true; 946026#factEXIT >#66#return; 946025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 946021#factFINAL assume true; 946018#factEXIT >#66#return; 945817#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945994#factFINAL assume true; 945765#factEXIT >#72#return; 945734#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945773#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 945770#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945768#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945705#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942154#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 945700#$Ultimate##0 ~n := #in~n; 945740#L25 assume !(~n <= 0); 945712#L26 call #t~ret0 := fact(~n - 1);< 945716#$Ultimate##0 ~n := #in~n; 945855#L25 assume !(~n <= 0); 945713#L26 call #t~ret0 := fact(~n - 1);< 945749#$Ultimate##0 ~n := #in~n; 945825#L25 assume !(~n <= 0); 945714#L26 call #t~ret0 := fact(~n - 1);< 945800#$Ultimate##0 ~n := #in~n; 945825#L25 assume !(~n <= 0); 945714#L26 call #t~ret0 := fact(~n - 1);< 945800#$Ultimate##0 ~n := #in~n; 945822#L25 assume ~n <= 0;#res := 1; 945821#factFINAL assume true; 945797#factEXIT >#66#return; 945784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945780#factFINAL assume true; 945747#factEXIT >#66#return; 945745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945741#factFINAL assume true; 945737#factEXIT >#66#return; 945725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945721#factFINAL assume true; 945709#factEXIT >#66#return; 945706#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945702#factFINAL assume true; 945699#factEXIT >#68#return; 945646#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942238#$Ultimate##0 ~n := #in~n; 945660#L25 assume ~n <= 0;#res := 1; 945658#factFINAL assume true; 945625#factEXIT >#70#return; 944663#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944670#$Ultimate##0 ~n := #in~n; 944668#L25 assume !(~n <= 0); 943626#L26 call #t~ret0 := fact(~n - 1);< 944659#$Ultimate##0 ~n := #in~n; 944657#L25 assume !(~n <= 0); 943625#L26 call #t~ret0 := fact(~n - 1);< 944041#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943651#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945672#factFINAL assume true; 945622#factEXIT >#72#return; 945538#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945620#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 945606#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945605#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945590#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944861#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944878#$Ultimate##0 ~n := #in~n; 944890#L25 assume !(~n <= 0); 943616#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943649#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945437#factFINAL assume true; 945434#factEXIT >#68#return; 944575#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944633#$Ultimate##0 ~n := #in~n; 944678#L25 assume !(~n <= 0); 943617#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944647#factFINAL assume true; 944312#factEXIT >#70#return; 944057#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944149#$Ultimate##0 ~n := #in~n; 944139#L25 assume ~n <= 0;#res := 1; 944048#factFINAL assume true; 944178#factEXIT >#72#return; 944291#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945581#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 945578#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945575#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945572#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944867#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944878#$Ultimate##0 ~n := #in~n; 944890#L25 assume !(~n <= 0); 943616#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945585#factFINAL assume true; 945584#factEXIT >#68#return; 944597#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944633#$Ultimate##0 ~n := #in~n; 944678#L25 assume !(~n <= 0); 943617#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943891#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944882#factFINAL assume true; 944777#factEXIT >#70#return; 943752#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944654#$Ultimate##0 ~n := #in~n; 944652#L25 assume ~n <= 0;#res := 1; 944048#factFINAL assume true; 944178#factEXIT >#72#return; 944306#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945774#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 945775#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945766#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945767#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943403#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943510#$Ultimate##0 ~n := #in~n; 946536#L25 assume !(~n <= 0); 943627#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#74#return; 943134#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943508#$Ultimate##0 ~n := #in~n; 945089#L25 assume !(~n <= 0); 943615#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#76#return; 943518#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943560#$Ultimate##0 ~n := #in~n; 944655#L25 assume !(~n <= 0); 943661#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#78#return; 943548#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945566#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945564#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945563#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945562#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943577#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943654#factFINAL assume true; 943564#factEXIT >#74#return; 943240#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943508#$Ultimate##0 ~n := #in~n; 945089#L25 assume !(~n <= 0); 943615#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#76#return; 943262#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944027#$Ultimate##0 ~n := #in~n; 944025#L25 assume !(~n <= 0); 943633#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#78#return; 944156#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945560#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945559#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945558#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945557#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943594#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943654#factFINAL assume true; 943564#factEXIT >#74#return; 943310#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943508#$Ultimate##0 ~n := #in~n; 945089#L25 assume !(~n <= 0); 943615#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#76#return; 943363#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944027#$Ultimate##0 ~n := #in~n; 944025#L25 assume !(~n <= 0); 943633#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#78#return; 943454#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945553#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945551#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945550#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945549#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943611#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945479#factFINAL assume true; 945397#factEXIT >#66#return; 945404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945456#factFINAL assume true; 945442#factEXIT >#66#return; 945441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945439#factFINAL assume true; 945336#factEXIT >#74#return; 943154#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 943508#$Ultimate##0 ~n := #in~n; 945089#L25 assume !(~n <= 0); 943615#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#76#return; 943160#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944027#$Ultimate##0 ~n := #in~n; 944025#L25 assume !(~n <= 0); 943633#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#78#return; 943451#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945410#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945408#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945351#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942259#L30-5 [2023-02-17 09:44:12,803 INFO L750 eck$LassoCheckResult]: Loop: 942259#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 942144#$Ultimate##0 ~n := #in~n; 945348#L25 assume !(~n <= 0); 945209#L26 call #t~ret0 := fact(~n - 1);< 945283#$Ultimate##0 ~n := #in~n; 946196#L25 assume !(~n <= 0); 945208#L26 call #t~ret0 := fact(~n - 1);< 946572#$Ultimate##0 ~n := #in~n; 946571#L25 assume !(~n <= 0); 945196#L26 call #t~ret0 := fact(~n - 1);< 945238#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945276#L25 assume !(~n <= 0); 945195#L26 call #t~ret0 := fact(~n - 1);< 945252#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945227#factFINAL assume true; 945219#factEXIT >#66#return; 945215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945182#factEXIT >#66#return; 945197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945291#factFINAL assume true; 945288#factEXIT >#66#return; 945286#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945282#factFINAL assume true; 945278#factEXIT >#66#return; 945277#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945273#factFINAL assume true; 945265#factEXIT >#66#return; 945264#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945260#factFINAL assume true; 945258#factEXIT >#66#return; 945257#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945256#factFINAL assume true; 945242#factEXIT >#66#return; 945240#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945230#factFINAL assume true; 945228#factEXIT >#66#return; 943123#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943121#factFINAL assume true; 943060#factEXIT >#74#return; 943062#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 945175#$Ultimate##0 ~n := #in~n; 946557#L25 assume !(~n <= 0); 945186#L26 call #t~ret0 := fact(~n - 1);< 945198#$Ultimate##0 ~n := #in~n; 945337#L25 assume !(~n <= 0); 945222#L26 call #t~ret0 := fact(~n - 1);< 945224#$Ultimate##0 ~n := #in~n; 945263#L25 assume !(~n <= 0); 945235#L26 call #t~ret0 := fact(~n - 1);< 945239#$Ultimate##0 ~n := #in~n; 945255#L25 assume !(~n <= 0); 945250#L26 call #t~ret0 := fact(~n - 1);< 945253#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945227#factFINAL assume true; 945219#factEXIT >#66#return; 945215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945182#factEXIT >#66#return; 945178#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945176#factFINAL assume true; 945161#factEXIT >#76#return; 942251#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 942252#$Ultimate##0 ~n := #in~n; 945292#L25 assume !(~n <= 0); 945203#L26 call #t~ret0 := fact(~n - 1);< 945284#$Ultimate##0 ~n := #in~n; 945341#L25 assume !(~n <= 0); 945192#L26 call #t~ret0 := fact(~n - 1);< 945204#$Ultimate##0 ~n := #in~n; 945356#L25 assume !(~n <= 0); 945188#L26 call #t~ret0 := fact(~n - 1);< 945226#$Ultimate##0 ~n := #in~n; 945319#L25 assume !(~n <= 0); 945220#L26 call #t~ret0 := fact(~n - 1);< 945237#$Ultimate##0 ~n := #in~n; 945411#L25 assume !(~n <= 0); 945234#L26 call #t~ret0 := fact(~n - 1);< 945254#$Ultimate##0 ~n := #in~n; 945275#L25 assume ~n <= 0;#res := 1; 945272#factFINAL assume true; 945249#factEXIT >#66#return; 945248#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945246#factFINAL assume true; 945233#factEXIT >#66#return; 945229#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945227#factFINAL assume true; 945219#factEXIT >#66#return; 945215#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945200#factFINAL assume true; 945182#factEXIT >#66#return; 945197#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945291#factFINAL assume true; 945288#factEXIT >#66#return; 945289#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943055#factFINAL assume true; 943058#factEXIT >#78#return; 942192#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 942193#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 942212#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 942248#L42-3 assume !(main_~k~0#1 <= main_~x~0#1); 942206#L41-2 main_#t~post7#1 := main_~n~0#1;main_~n~0#1 := 1 + main_#t~post7#1;havoc main_#t~post7#1; 942204#L41-3 assume !!(main_~n~0#1 <= main_~x~0#1);main_~k~0#1 := 0; 942205#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 942222#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944938#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944953#$Ultimate##0 ~n := #in~n; 945039#L25 assume !(~n <= 0); 942179#L26 call #t~ret0 := fact(~n - 1);< 945020#$Ultimate##0 ~n := #in~n; 945042#L25 assume !(~n <= 0); 942178#L26 call #t~ret0 := fact(~n - 1);< 945040#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 944885#L25 assume !(~n <= 0); 942182#L26 call #t~ret0 := fact(~n - 1);< 945099#$Ultimate##0 ~n := #in~n; 945103#L25 assume ~n <= 0;#res := 1; 945101#factFINAL assume true; 945098#factEXIT >#66#return; 945095#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945091#factFINAL assume true; 944973#factEXIT >#66#return; 944974#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945033#factFINAL assume true; 945028#factEXIT >#66#return; 945029#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945038#factFINAL assume true; 945030#factEXIT >#66#return; 945027#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945022#factFINAL assume true; 945018#factEXIT >#66#return; 945019#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945315#factFINAL assume true; 945313#factEXIT >#66#return; 945314#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945914#factFINAL assume true; 945913#factEXIT >#68#return; 944700#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944763#$Ultimate##0 ~n := #in~n; 944881#L25 assume ~n <= 0;#res := 1; 944723#factFINAL assume true; 944684#factEXIT >#70#return; 944715#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 945886#$Ultimate##0 ~n := #in~n; 945925#L25 assume !(~n <= 0); 945810#L26 call #t~ret0 := fact(~n - 1);< 945909#$Ultimate##0 ~n := #in~n; 945999#L25 assume !(~n <= 0); 945790#L26 call #t~ret0 := fact(~n - 1);< 945796#$Ultimate##0 ~n := #in~n; 946061#L25 assume !(~n <= 0); 945815#L26 call #t~ret0 := fact(~n - 1);< 945819#$Ultimate##0 ~n := #in~n; 946043#L25 assume !(~n <= 0); 946019#L26 call #t~ret0 := fact(~n - 1);< 946024#$Ultimate##0 ~n := #in~n; 946044#L25 assume !(~n <= 0); 942201#L26 call #t~ret0 := fact(~n - 1);< 946028#$Ultimate##0 ~n := #in~n; 946201#L25 assume !(~n <= 0); 942200#L26 call #t~ret0 := fact(~n - 1);< 942203#$Ultimate##0 ~n := #in~n; 946049#L25 assume ~n <= 0;#res := 1; 946046#factFINAL assume true; 946034#factEXIT >#66#return; 946032#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 946031#factFINAL assume true; 946026#factEXIT >#66#return; 946025#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 946021#factFINAL assume true; 946018#factEXIT >#66#return; 945828#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945826#factFINAL assume true; 945814#factEXIT >#66#return; 945812#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945808#factFINAL assume true; 945786#factEXIT >#66#return; 945795#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945916#factFINAL assume true; 945907#factEXIT >#66#return; 945905#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945898#factFINAL assume true; 945894#factEXIT >#72#return; 945736#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945882#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 945878#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945874#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945870#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942153#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 945700#$Ultimate##0 ~n := #in~n; 945740#L25 assume !(~n <= 0); 945712#L26 call #t~ret0 := fact(~n - 1);< 945716#$Ultimate##0 ~n := #in~n; 945855#L25 assume !(~n <= 0); 945713#L26 call #t~ret0 := fact(~n - 1);< 945749#$Ultimate##0 ~n := #in~n; 945825#L25 assume !(~n <= 0); 945714#L26 call #t~ret0 := fact(~n - 1);< 945800#$Ultimate##0 ~n := #in~n; 945825#L25 assume !(~n <= 0); 945714#L26 call #t~ret0 := fact(~n - 1);< 945800#$Ultimate##0 ~n := #in~n; 945825#L25 assume !(~n <= 0); 945714#L26 call #t~ret0 := fact(~n - 1);< 945800#$Ultimate##0 ~n := #in~n; 945825#L25 assume !(~n <= 0); 945714#L26 call #t~ret0 := fact(~n - 1);< 945800#$Ultimate##0 ~n := #in~n; 945822#L25 assume ~n <= 0;#res := 1; 945821#factFINAL assume true; 945797#factEXIT >#66#return; 945784#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945780#factFINAL assume true; 945747#factEXIT >#66#return; 945745#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945741#factFINAL assume true; 945737#factEXIT >#66#return; 945725#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945721#factFINAL assume true; 945709#factEXIT >#66#return; 945715#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945751#factFINAL assume true; 945717#factEXIT >#66#return; 945719#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945889#factFINAL assume true; 945880#factEXIT >#66#return; 945877#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945873#factFINAL assume true; 945869#factEXIT >#68#return; 945640#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 942238#$Ultimate##0 ~n := #in~n; 945660#L25 assume ~n <= 0;#res := 1; 945658#factFINAL assume true; 945625#factEXIT >#70#return; 945064#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 945069#$Ultimate##0 ~n := #in~n; 945068#L25 assume !(~n <= 0); 945059#L26 call #t~ret0 := fact(~n - 1);< 945061#$Ultimate##0 ~n := #in~n; 945058#L25 assume !(~n <= 0); 943658#L26 call #t~ret0 := fact(~n - 1);< 944721#$Ultimate##0 ~n := #in~n; 944682#L25 assume !(~n <= 0); 943636#L26 call #t~ret0 := fact(~n - 1);< 943652#$Ultimate##0 ~n := #in~n; 945090#L25 assume !(~n <= 0); 943887#L26 call #t~ret0 := fact(~n - 1);< 943893#$Ultimate##0 ~n := #in~n; 944656#L25 assume !(~n <= 0); 944034#L26 call #t~ret0 := fact(~n - 1);< 944043#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945419#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945865#factFINAL assume true; 945862#factEXIT >#72#return; 945530#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945859#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 945858#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945857#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945856#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944786#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944878#$Ultimate##0 ~n := #in~n; 944890#L25 assume !(~n <= 0); 943616#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945417#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945842#factFINAL assume true; 945839#factEXIT >#68#return; 944393#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944653#$Ultimate##0 ~n := #in~n; 944651#L25 assume !(~n <= 0); 943641#L26 call #t~ret0 := fact(~n - 1);< 943683#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944038#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944647#factFINAL assume true; 944312#factEXIT >#70#return; 943903#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 945097#$Ultimate##0 ~n := #in~n; 945093#L25 assume !(~n <= 0); 943642#L26 call #t~ret0 := fact(~n - 1);< 943892#$Ultimate##0 ~n := #in~n; 946210#L25 assume !(~n <= 0); 943637#L26 call #t~ret0 := fact(~n - 1);< 944042#$Ultimate##0 ~n := #in~n; 944635#L25 assume !(~n <= 0); 943620#L26 call #t~ret0 := fact(~n - 1);< 944145#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943889#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945604#factFINAL assume true; 945529#factEXIT >#72#return; 945533#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 946074#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 946067#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 946053#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 946051#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944797#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944878#$Ultimate##0 ~n := #in~n; 944890#L25 assume !(~n <= 0); 943616#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945479#factFINAL assume true; 945397#factEXIT >#66#return; 945403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945968#factFINAL assume true; 945838#factEXIT >#68#return; 944455#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944653#$Ultimate##0 ~n := #in~n; 944651#L25 assume !(~n <= 0); 943641#L26 call #t~ret0 := fact(~n - 1);< 943683#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945479#factFINAL assume true; 945397#factEXIT >#66#return; 945403#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945968#factFINAL assume true; 945838#factEXIT >#70#return; 943862#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944311#$Ultimate##0 ~n := #in~n; 944888#L25 assume !(~n <= 0); 943668#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943669#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944756#factFINAL assume true; 944744#factEXIT >#72#return; 944265#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 946003#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 946002#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 946001#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 946000#L43 assume main_~k~0#1 <= main_~n~0#1;assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~n~0#1, main_~k~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 944818#L30 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 944878#$Ultimate##0 ~n := #in~n; 944890#L25 assume !(~n <= 0); 943616#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945585#factFINAL assume true; 945584#factEXIT >#68#return; 944555#L30-1 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944639#$Ultimate##0 ~n := #in~n; 944638#L25 assume !(~n <= 0); 943621#L26 call #t~ret0 := fact(~n - 1);< 944636#$Ultimate##0 ~n := #in~n; 944635#L25 assume !(~n <= 0); 943620#L26 call #t~ret0 := fact(~n - 1);< 944145#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943679#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945585#factFINAL assume true; 945584#factEXIT >#70#return; 943835#L30-2 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944311#$Ultimate##0 ~n := #in~n; 944888#L25 assume ~n <= 0;#res := 1; 944048#factFINAL assume true; 944178#factEXIT >#72#return; 944305#L30-3 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 946015#binomialCoefficient_returnLabel#1 main_#t~ret9#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret9#1; 946016#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945992#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945993#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943224#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943510#$Ultimate##0 ~n := #in~n; 946536#L25 assume !(~n <= 0); 943627#L26 call #t~ret0 := fact(~n - 1);< 944887#$Ultimate##0 ~n := #in~n; 946529#L25 assume !(~n <= 0); 943623#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#74#return; 943264#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 945110#$Ultimate##0 ~n := #in~n; 945108#L25 assume !(~n <= 0); 943628#L26 call #t~ret0 := fact(~n - 1);< 945106#$Ultimate##0 ~n := #in~n; 945104#L25 assume !(~n <= 0); 943618#L26 call #t~ret0 := fact(~n - 1);< 943894#$Ultimate##0 ~n := #in~n; 945130#L25 assume !(~n <= 0); 943884#L26 call #t~ret0 := fact(~n - 1);< 944040#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943654#factFINAL assume true; 943564#factEXIT >#76#return; 943468#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 943560#$Ultimate##0 ~n := #in~n; 944655#L25 assume !(~n <= 0); 943661#L26 call #t~ret0 := fact(~n - 1);< 943671#$Ultimate##0 ~n := #in~n; 944030#L25 assume ~n <= 0;#res := 1; 943714#factFINAL assume true; 943660#factEXIT >#66#return; 943653#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943562#factFINAL assume true; 943512#factEXIT >#78#return; 943558#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945619#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945618#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945617#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945616#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943589#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943673#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943654#factFINAL assume true; 943564#factEXIT >#74#return; 943293#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944642#$Ultimate##0 ~n := #in~n; 944640#L25 assume !(~n <= 0); 943631#L26 call #t~ret0 := fact(~n - 1);< 943652#$Ultimate##0 ~n := #in~n; 945090#L25 assume !(~n <= 0); 943887#L26 call #t~ret0 := fact(~n - 1);< 943893#$Ultimate##0 ~n := #in~n; 944656#L25 assume !(~n <= 0); 944034#L26 call #t~ret0 := fact(~n - 1);< 944043#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#76#return; 943482#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944152#$Ultimate##0 ~n := #in~n; 944141#L25 assume !(~n <= 0); 943665#L26 call #t~ret0 := fact(~n - 1);< 944135#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944039#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944643#factFINAL assume true; 944154#factEXIT >#78#return; 944163#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945395#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945393#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945392#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945391#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943607#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945479#factFINAL assume true; 945397#factEXIT >#66#return; 945404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945456#factFINAL assume true; 945442#factEXIT >#66#return; 945441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945439#factFINAL assume true; 945336#factEXIT >#74#return; 943149#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944642#$Ultimate##0 ~n := #in~n; 944640#L25 assume !(~n <= 0); 943631#L26 call #t~ret0 := fact(~n - 1);< 943652#$Ultimate##0 ~n := #in~n; 945090#L25 assume !(~n <= 0); 943887#L26 call #t~ret0 := fact(~n - 1);< 943893#$Ultimate##0 ~n := #in~n; 944656#L25 assume !(~n <= 0); 944034#L26 call #t~ret0 := fact(~n - 1);< 944043#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#76#return; 943165#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944027#$Ultimate##0 ~n := #in~n; 944025#L25 assume !(~n <= 0); 943633#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943890#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944052#factFINAL assume true; 944029#factEXIT >#78#return; 943453#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945556#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945555#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945554#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945552#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 943571#L30-5 call binomialCoefficient_#t~ret1#1 := fact(binomialCoefficient_~n#1);< 943612#$Ultimate##0 ~n := #in~n; 946561#L25 assume !(~n <= 0); 943676#L26 call #t~ret0 := fact(~n - 1);< 946559#$Ultimate##0 ~n := #in~n; 946558#L25 assume !(~n <= 0); 943630#L26 call #t~ret0 := fact(~n - 1);< 946554#$Ultimate##0 ~n := #in~n; 946552#L25 assume !(~n <= 0); 943629#L26 call #t~ret0 := fact(~n - 1);< 943896#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 945470#L25 assume !(~n <= 0); 943632#L26 call #t~ret0 := fact(~n - 1);< 944147#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943650#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943685#factFINAL assume true; 943674#factEXIT >#66#return; 943680#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945422#factFINAL assume true; 945415#factEXIT >#66#return; 945418#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945479#factFINAL assume true; 945397#factEXIT >#66#return; 945404#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945456#factFINAL assume true; 945442#factEXIT >#66#return; 945441#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 945439#factFINAL assume true; 945336#factEXIT >#74#return; 943208#L30-6 call binomialCoefficient_#t~ret2#1 := fact(binomialCoefficient_~k#1);< 944642#$Ultimate##0 ~n := #in~n; 944640#L25 assume !(~n <= 0); 943631#L26 call #t~ret0 := fact(~n - 1);< 943652#$Ultimate##0 ~n := #in~n; 945090#L25 assume !(~n <= 0); 943887#L26 call #t~ret0 := fact(~n - 1);< 943893#$Ultimate##0 ~n := #in~n; 944656#L25 assume !(~n <= 0); 944034#L26 call #t~ret0 := fact(~n - 1);< 944043#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#76#return; 943160#L30-7 call binomialCoefficient_#t~ret3#1 := fact(binomialCoefficient_~n#1 - binomialCoefficient_~k#1);< 944027#$Ultimate##0 ~n := #in~n; 944025#L25 assume !(~n <= 0); 943633#L26 call #t~ret0 := fact(~n - 1);< 943672#$Ultimate##0 ~n := #in~n; 944168#L25 assume !(~n <= 0); 943885#L26 call #t~ret0 := fact(~n - 1);< 944144#$Ultimate##0 ~n := #in~n; 944641#L25 assume !(~n <= 0); 944036#L26 call #t~ret0 := fact(~n - 1);< 944148#$Ultimate##0 ~n := #in~n; 944637#L25 assume !(~n <= 0); 944143#L26 call #t~ret0 := fact(~n - 1);< 944146#$Ultimate##0 ~n := #in~n; 944167#L25 assume ~n <= 0;#res := 1; 944166#factFINAL assume true; 944142#factEXIT >#66#return; 944138#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 944054#factFINAL assume true; 944032#factEXIT >#66#return; 944031#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943895#factFINAL assume true; 943883#factEXIT >#66#return; 943713#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943657#factFINAL assume true; 943613#factEXIT >#66#return; 943561#L26-1 #res := ~n * #t~ret0;havoc #t~ret0; 943509#factFINAL assume true; 943131#factEXIT >#78#return; 943451#L30-8 binomialCoefficient_#res#1 := (if binomialCoefficient_#t~ret1#1 < 0 && 0 != binomialCoefficient_#t~ret1#1 % (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) then (if binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1 < 0 then binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1) - 1 else 1 + binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1)) else binomialCoefficient_#t~ret1#1 / (binomialCoefficient_#t~ret2#1 * binomialCoefficient_#t~ret3#1));havoc binomialCoefficient_#t~ret1#1;havoc binomialCoefficient_#t~ret2#1;havoc binomialCoefficient_#t~ret3#1; 945410#binomialCoefficient_returnLabel#2 main_#t~ret10#1 := binomialCoefficient_#res#1;assume { :end_inline_binomialCoefficient } true;havoc main_#t~ret10#1; 945409#L42-2 main_#t~post8#1 := main_~k~0#1;main_~k~0#1 := 1 + main_#t~post8#1;havoc main_#t~post8#1; 945408#L42-3 assume !!(main_~k~0#1 <= main_~x~0#1); 945351#L43 assume !(main_~k~0#1 <= main_~n~0#1);assume { :begin_inline_binomialCoefficient } true;binomialCoefficient_#in~n#1, binomialCoefficient_#in~k#1 := main_~k~0#1, main_~n~0#1;havoc binomialCoefficient_#res#1;havoc binomialCoefficient_#t~ret1#1, binomialCoefficient_#t~ret2#1, binomialCoefficient_#t~ret3#1, binomialCoefficient_~n#1, binomialCoefficient_~k#1;binomialCoefficient_~n#1 := binomialCoefficient_#in~n#1;binomialCoefficient_~k#1 := binomialCoefficient_#in~k#1; 942259#L30-5 [2023-02-17 09:44:12,803 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:44:12,803 INFO L85 PathProgramCache]: Analyzing trace with hash -233701689, now seen corresponding path program 58 times [2023-02-17 09:44:12,803 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:44:12,803 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [15947072] [2023-02-17 09:44:12,804 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:44:12,804 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:44:12,843 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:44:12,843 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [232950683] [2023-02-17 09:44:12,843 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:44:12,843 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:44:12,843 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:44:12,846 INFO L229 MonitoredProcess]: Starting monitored process 265 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:44:12,847 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (265)] Waiting until timeout for monitored process [2023-02-17 09:44:14,482 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:44:14,483 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:44:14,498 INFO L263 TraceCheckSpWp]: Trace formula consists of 4102 conjuncts, 16 conjunts are in the unsatisfiable core [2023-02-17 09:44:14,508 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:44:14,606 INFO L134 CoverageAnalysis]: Checked inductivity of 230272 backedges. 100274 proven. 332 refuted. 0 times theorem prover too weak. 129666 trivial. 0 not checked. [2023-02-17 09:44:14,607 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:44:14,736 INFO L134 CoverageAnalysis]: Checked inductivity of 230272 backedges. 1334 proven. 332 refuted. 0 times theorem prover too weak. 228606 trivial. 0 not checked. [2023-02-17 09:44:14,736 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:44:14,736 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [15947072] [2023-02-17 09:44:14,736 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:44:14,737 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [232950683] [2023-02-17 09:44:14,737 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [232950683] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:44:14,737 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:44:14,737 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 24 [2023-02-17 09:44:14,737 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1018534922] [2023-02-17 09:44:14,737 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:44:14,738 INFO L753 eck$LassoCheckResult]: stem already infeasible [2023-02-17 09:44:14,738 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2023-02-17 09:44:14,738 INFO L85 PathProgramCache]: Analyzing trace with hash -839248452, now seen corresponding path program 52 times [2023-02-17 09:44:14,738 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2023-02-17 09:44:14,738 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [887047767] [2023-02-17 09:44:14,738 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2023-02-17 09:44:14,738 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2023-02-17 09:44:14,768 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2023-02-17 09:44:14,768 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [605938854] [2023-02-17 09:44:14,768 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2023-02-17 09:44:14,769 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2023-02-17 09:44:14,769 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2023-02-17 09:44:14,773 INFO L229 MonitoredProcess]: Starting monitored process 266 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2023-02-17 09:44:14,774 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (266)] Waiting until timeout for monitored process [2023-02-17 09:44:16,159 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2023-02-17 09:44:16,159 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2023-02-17 09:44:16,167 INFO L263 TraceCheckSpWp]: Trace formula consists of 2090 conjuncts, 45 conjunts are in the unsatisfiable core [2023-02-17 09:44:16,172 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2023-02-17 09:44:16,295 INFO L134 CoverageAnalysis]: Checked inductivity of 68795 backedges. 16714 proven. 635 refuted. 0 times theorem prover too weak. 51446 trivial. 0 not checked. [2023-02-17 09:44:16,295 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2023-02-17 09:44:17,081 INFO L134 CoverageAnalysis]: Checked inductivity of 68795 backedges. 226 proven. 13811 refuted. 0 times theorem prover too weak. 54758 trivial. 0 not checked. [2023-02-17 09:44:17,081 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2023-02-17 09:44:17,081 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [887047767] [2023-02-17 09:44:17,081 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2023-02-17 09:44:17,082 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [605938854] [2023-02-17 09:44:17,082 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [605938854] provided 0 perfect and 2 imperfect interpolant sequences [2023-02-17 09:44:17,082 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2023-02-17 09:44:17,082 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 36] total 39 [2023-02-17 09:44:17,082 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2001553056] [2023-02-17 09:44:17,082 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2023-02-17 09:44:17,082 INFO L765 eck$LassoCheckResult]: loop already infeasible [2023-02-17 09:44:17,083 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2023-02-17 09:44:17,083 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2023-02-17 09:44:17,083 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=229, Invalid=1253, Unknown=0, NotChecked=0, Total=1482 [2023-02-17 09:44:17,083 INFO L87 Difference]: Start difference. First operand 4479 states and 10353 transitions. cyclomatic complexity: 5912 Second operand has 39 states, 36 states have (on average 2.5) internal successors, (90), 36 states have internal predecessors, (90), 22 states have call successors, (35), 2 states have call predecessors, (35), 18 states have return successors, (48), 20 states have call predecessors, (48), 22 states have call successors, (48)